diff --git a/Assets/Editor/Script/ConditionalFieldAttribute.cs b/Assets/Editor/Script/ConditionalFieldAttribute.cs index 185468523..9294c8a05 100644 --- a/Assets/Editor/Script/ConditionalFieldAttribute.cs +++ b/Assets/Editor/Script/ConditionalFieldAttribute.cs @@ -8,4 +8,4 @@ public class ConditionalFieldAttribute : PropertyAttribute { this.conditionField = conditionField; } -} +} \ No newline at end of file diff --git a/Assets/Editor/Script/ConditionalFieldDrawer.cs b/Assets/Editor/Script/ConditionalFieldDrawer.cs index 032741755..ecb590f8a 100644 --- a/Assets/Editor/Script/ConditionalFieldDrawer.cs +++ b/Assets/Editor/Script/ConditionalFieldDrawer.cs @@ -5,15 +5,15 @@ using UnityEngine; public class ConditionalFieldDrawer : PropertyDrawer { public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) -{ - ConditionalFieldAttribute conditional = (ConditionalFieldAttribute)attribute; - SerializedProperty conditionProperty = property.serializedObject.FindProperty(conditional.conditionField); - - if (conditionProperty != null && conditionProperty.boolValue) { - EditorGUI.PropertyField(position, property, label, true); + ConditionalFieldAttribute conditional = (ConditionalFieldAttribute)attribute; + SerializedProperty conditionProperty = property.serializedObject.FindProperty(conditional.conditionField); + + if (conditionProperty != null && conditionProperty.boolValue) + { + EditorGUI.PropertyField(position, property, label, true); + } } -} public override float GetPropertyHeight(SerializedProperty property, GUIContent label) @@ -28,4 +28,4 @@ public class ConditionalFieldDrawer : PropertyDrawer return 0f; // 隐藏字段时的高度 } -} +} \ No newline at end of file diff --git a/Assets/Editor/Script/SystemHasDataEditor.cs b/Assets/Editor/Script/SystemHasDataEditor.cs index bc3bc1d96..5819196e7 100644 --- a/Assets/Editor/Script/SystemHasDataEditor.cs +++ b/Assets/Editor/Script/SystemHasDataEditor.cs @@ -1,4 +1,5 @@ using AibisDream.Framework; +using AibisDream.Kit; using UnityEditor; using UnityEngine; @@ -15,7 +16,7 @@ namespace AibisDream.SystemEditor { // 获取目标对象 SystemHasData example = (SystemHasData)target; - _options = example.GetDataKeyOptions(); + _options ??= GetDataKeysByPath(example.GetConfigPath()); // 绘制默认的 Inspector DrawDefaultInspector(); @@ -38,7 +39,7 @@ namespace AibisDream.SystemEditor { Undo.RecordObject(example, "Save Input Value"); example.CurDataKey = _inputText; - example.Save(); + example.SaveLevel(); Debug.Log("Saved: " + _inputText); } @@ -46,11 +47,16 @@ namespace AibisDream.SystemEditor if (GUILayout.Button("加载")) { example.CurDataKey = _inputText; - _selectedIndex = System.Array.IndexOf(example.GetDataKeyOptions(), _inputText); + _selectedIndex = System.Array.IndexOf(_options, _inputText); if (_selectedIndex < 0) _selectedIndex = 0; - example.Load(); + example.LoadLevel(); Debug.Log("Loaded: " + _inputText); } } + + private static string[] GetDataKeysByPath(string path) + { + return ConfigUtil.Instance.GetFileNames(path); + } } } \ No newline at end of file diff --git a/Assets/Editor/Script/TalkSceneSoAttribute.cs b/Assets/Editor/Script/TalkSceneSoAttribute.cs new file mode 100644 index 000000000..37d4d330d --- /dev/null +++ b/Assets/Editor/Script/TalkSceneSoAttribute.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace AibisDream.SystemEditor +{ + public class TalkSceneSoAttribute : PropertyAttribute + { + public TalkSceneSO talkSceneSo; + + public TalkSceneSoAttribute(TalkSceneSO talkSceneSo) + { + this.talkSceneSo = talkSceneSo; + } + } +} \ No newline at end of file diff --git a/Assets/Editor/Script/TalkSceneSoAttribute.cs.meta b/Assets/Editor/Script/TalkSceneSoAttribute.cs.meta new file mode 100644 index 000000000..c25f48357 --- /dev/null +++ b/Assets/Editor/Script/TalkSceneSoAttribute.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 97f24a0248134470b3577a2e43388c1a +timeCreated: 1736223837 \ No newline at end of file diff --git a/Assets/Editor/Script/TalkSceneSoDrawer.cs b/Assets/Editor/Script/TalkSceneSoDrawer.cs new file mode 100644 index 000000000..a0fa23f2c --- /dev/null +++ b/Assets/Editor/Script/TalkSceneSoDrawer.cs @@ -0,0 +1,20 @@ +using UnityEditor; +using UnityEngine; + +namespace AibisDream.SystemEditor +{ + [CustomPropertyDrawer(typeof(TalkSceneSoAttribute))] + public class TalkSceneSoDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + } + + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return 0; + } + } +} \ No newline at end of file diff --git a/Assets/Editor/Script/TalkSceneSoDrawer.cs.meta b/Assets/Editor/Script/TalkSceneSoDrawer.cs.meta new file mode 100644 index 000000000..eea915a5d --- /dev/null +++ b/Assets/Editor/Script/TalkSceneSoDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8b6932bbd2554b218f62df463960853e +timeCreated: 1736223992 \ No newline at end of file diff --git a/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index 449bd2d98..fb230e02e 100644 --- a/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -196,18 +196,45 @@ MonoBehaviour: m_StrikethroughOffset: 18 m_StrikethroughThickness: 6.298828 m_TabWidth: 24 - m_GlyphTable: [] - m_CharacterTable: [] + m_GlyphTable: + - m_Index: 2204 + m_Metrics: + m_Width: 43 + m_Height: 51 + m_HorizontalBearingX: 11 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 65 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 43 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 9835 + m_GlyphIndex: 2204 + m_Scale: 1 m_AtlasTextures: - {fileID: 28268798066460806} m_AtlasTextureIndex: 0 m_IsMultiAtlasTexturesEnabled: 0 m_ClearDynamicDataOnBuild: 1 - m_UsedGlyphRects: [] - m_FreeGlyphRects: + m_UsedGlyphRects: - m_X: 0 m_Y: 0 + m_Width: 62 + m_Height: 70 + m_FreeGlyphRects: + - m_X: 0 + m_Y: 70 m_Width: 511 + m_Height: 441 + - m_X: 62 + m_Y: 0 + m_Width: 449 m_Height: 511 m_fontInfo: Name: Liberation Sans @@ -322,9 +349,9 @@ Texture2D: m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 serializedVersion: 2 - m_Width: 0 - m_Height: 0 - m_CompleteImageSize: 0 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 m_MipsStripped: 0 m_TextureFormat: 1 m_MipCount: 1 @@ -349,8 +376,8 @@ Texture2D: m_LightmapFormat: 0 m_ColorSpace: 0 m_PlatformBlob: - image data: 0 - _typelessdata: + image data: 262144 + _typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060b10121312110d0909070300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213181d1f201f1d1a1615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f20252a2c2c2b2a2723221f1b160f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b22272b2d32363939383734302f2c27211b150e0600000000000000000000000105060605020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3337393e4345464544403c3b38322b2620181008000000000000020507080e121313110e0a0606030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f44464b50525352504d4948443d37312a221a110800000003090e1214151b1e201f1e1b1713120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3841495053585d5f5f5e5d5a56544f47433c342c231a110800060d141a1e2122282b2c2c2b2824201f1c17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49535b6065696c6c6b6a67636059534e463e352c231a0e060f171f262a2d2e343839393835302d2b28221c140b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b656c717678797877736f6b625f584f473e352b20170f18212931363a3b4145464644413d3938332d261d19110a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e58606c777e8385868583807c766f6a61594f473d32291e18212a333b4246484e515352514e4a46443f382f2b231c130b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b47545f6a74818b90929291908d89827c706b61594f443a30251f2a333c454d53555b5e5f5f5e5b5753504a423d352e251d140b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88939c9f9f9e9d9a948f867d706b60564c41362a26313c454d575f61676b6c6c6b6863605b544f4740372f261d130900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5abacabaaa69f9892877d70685e52463a302b37424d575f696e747879797774706c666059524940382f251b0e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98aab4b9b8b6b0aaa29991857a6d61564c41362d3a47535f696e7b8184868584817d78706b635b524a40372d20170d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a98a2aebac3c2bcb4aba1978d8174685e5246392e3b4855616e7b858e919292918e8a837d736d645c52493f32291f14080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929fa7b1bac1c5bdb3a99f92867a6d6154473a35424e5b6875818e979e9f9f9e9b9590877f746e645b51443b3025190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6773808d95a0a8afb7b8b8b7aea3988b7e7265584b3f3845525e6b7885919ea9acacaaa7a099938c80746d62564d41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55606d798390969ea5abacacaaa8aa9b8e8175685b4f422d45525f6b7885929eabb8b8b7b1aba49f928b7f72685e5246392d2014090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3945515d676e7b848f939b9e9f9f9d9b989d9184776a544a3f3344505d6a7783909dabb4bfc3bdb5afa49f92867b6e6154473b31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2935404b555e696e7a82898e919292918e8b91928578665b504438404d5a6773808d99a3aeb9bec4c0baaea2988d807366574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f39434d565e686d757c8184858584817e8b9386796c605346393b4855616e7b86929fa4adb3b8b9b8b4aa9e918478695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28313b444d565d606b6f7478797977757a879a86796d6053463a3a46535f69727f8c929ea2a9abacaba9a6a196887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f29323b444c52596063686b6c6c6a6e7a879386796d6053463a37424d57636d74808b92979c9e9f9e9d999c968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d172029323a41454f54565b5e5f5f616e7a879386796d6053463a313c45515b646e747e858b8f919291908c90948b7e7165584b3e3225180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1720282f353d4448494e515254616e7a879386796d6053463a2d334049525c646c717a7f82858685838082908c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d161e242932383b3c41454754616e7a879386796d6053463a2d2e37404a525a61676d72767879787675818e8c7f7265594c3f3226190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c131921272c2f30353b4754616e7a879386796d6053463a2d202f38404850555d6065696b6c6b6a75828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d161b2022232e3b4754616e7a879386796d6053463a2d20262f363e434b5154585c5e5f5e6875828e8c7f7265594c3f3226190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0f1314212e3b4754616e7a879386796d6053463a2d201d242d313a4145474c5052535b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030814212e3b4754616e7a879386796d6053463a2d20131b1f282f35393a3f43454f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6053463a2d20130d161d24292c2d3236424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6053463a2d201a141313181d20212835424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6053463a2d2a2521201d1913131c2835424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6053463b3a36312d2c2924201f1c2835424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6053494846423d3a39352f2d2c282335424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d605b5354534d4a4745413c3a38342e35424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796f6c6565615e575754524c494644403c3a424f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87948c7f7c7875716e696764605d565653514a4847434f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794918c8885827e7b7774706d686663605c5455534e4f5b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949c9997928e8b8784817d7a76736f6d6665625f58575b6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a19ea19e9b9896918d8a8683807c7975726f6a6864616875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794969196989b9fa09e9a9992908c8985827f7b7874716e6875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949184888b8f9297999c9f9f9d9998928f8b8884817e7a7775818e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386787b7e8285898c9092999a9da09f9c9896918e8a87848083908c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796e7275797c7f83868a8d9095979b9ea19e9b9795908d90958c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d65666d6f73767a7d8084878a8e9196989c9fa09d9a9d988c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879386796d6665626266676d7073777a7e8184888b8f9298999c9f988c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897d7975726e6a6864616367686e7174787b7f8285898c9092998c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87948f8985827f7b7874716d6866636164686a6e7275797c808387928c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949998928f8b8884817e7a7773706d6665626265666d6f7376818e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a29f9c9896918e8a8683807c7975726e69676460636875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879297989b9ea1a19e9b9993908d8985827f7b7874716d686875828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d798185888b8f9297989b9fa29f9d9998928f8b8884817d7a767375828e8c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d75797b7f8285888b8f9297989c9fa29f9c9896918e8a8683807c818e8c7f7265594c3f3226190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b555d60656c6f7275797c7f8285888c8f9298999c9fa19e9a9992908c898e938c7f7265594c3f3226190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a434b51535b606265656c6f7275797c7f8285898c8f9298999c9f9f9d99969b988c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a404549505355535b606265666c6f7275797c7f8285898c8f9298999c9fa3988c7f7265594c3f3226190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f35383f44464849505355545b606265666d6f7276797c7f8285898c8f9298988c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d24292d3337393c3f4446484a505355545c606266666d6f7276797c7f8386898c8c7f7265594c3f3226190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181b22272b2d2d3337393c3f4446494a505356545c606266666d6f7376797c80837f7265584c3f3225190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d11171b1f2022272b2d2d3338393c3f4446494a505356545c606366676d707376726d62564a3e3124180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213171b1f2022282b2d2e34383a3c3f4446494b515356555c6063666965625b51463a2e221509000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060b0f1213171c1f2023282b2d2e34383a3c404546494b515356595d585651493f34291e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060b0f1213171c1f2023282c2d2e34383a3c404546494d504c4a463f372d23180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060b101213171c1f2023282c2d2e34383a3d40433f3e3a342d251b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060c101213181c1f2023282c2d30333632312e29231b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070c101313181c1f2023262a2524221e1811090100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070c101313161a1d191815120d0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0d100c0b09060100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m_StreamData: serializedVersion: 2 offset: 0 diff --git a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs index 78d6c9663..d80396b5f 100644 --- a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs +++ b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs @@ -9,49 +9,41 @@ using DG.Tweening; using Yarn.Unity; using UnityEngine.SceneManagement; using System.Numerics; + public class EyeTransitionManager : MonoBehaviour { private float zoomDuration = 1.5f; + public Image blackScreenImage; + // 视图配置类 [System.Serializable] public class ViewConfig { public ViewState viewState; public MonoBehaviour manager; - [HideInInspector] - public IViewLifecycle viewLifecycle; // 引用视图的生命周期接口 + [HideInInspector] public IViewLifecycle viewLifecycle; // 引用视图的生命周期接口 public GameObject viewPanel; // 视图的面板 public float cameraSize; - public UnityEngine.Vector2 cameraPos; - //private bool _isAvailable = false; // 视图是否可用的私有字段 - public Socket socket; - //public CrowBarSocket crowBarSocket; - // 视图是否可用的公有属性 - // public bool IsAvailable - // { - // get { return _isAvailable; } - // set - // { - // _isAvailable = value; - // } - // } - public string audioName="amb_remove"; - public string soundName="remove_in_1"; + public UnityEngine.Vector2 cameraPos; + + public Socket socket; + public string audioName = "amb_remove"; + public string soundName = "remove_in_1"; } // 在 Unity 编辑器中配置视图(不包括MainView) - [SerializeField] - private List viewConfigs; + [SerializeField] private List viewConfigs; // 视图状态和视图配置的映射 private Dictionary viewConfigDictionary; - + // 是否正在进行视图过渡 private bool isTransitioning = false; public Transform projector; + // 视图状态枚举 public enum ViewState { @@ -59,14 +51,6 @@ public class EyeTransitionManager : MonoBehaviour EyeView, UFView, MemoryView, - LogicView, - EmoView, - ColorView, - SpeakView, - UFViewBroken, - //ColorView - - // 为未来的视图添加更多状态 } @@ -75,16 +59,16 @@ public class EyeTransitionManager : MonoBehaviour // 视图更改请求的事件 public delegate void ViewChangeRequestedHandler(ViewState targetViewState); + public event ViewChangeRequestedHandler OnViewChangeRequested; public event Action OnGetMainView; public event Action OnGetDeepView; - private void Awake() -{ - -} + private void Awake() + { + } private void OnDestroy() { @@ -101,8 +85,6 @@ public class EyeTransitionManager : MonoBehaviour private void Start() { - - // 初始化视图 InitializeView(); @@ -112,8 +94,8 @@ public class EyeTransitionManager : MonoBehaviour { viewConfigDictionary[config.viewState] = config; - if(config.manager != null&&(config.manager is IViewLifecycle lifecycle)) - { + if (config.manager != null && (config.manager is IViewLifecycle lifecycle)) + { // 查找视图的 IViewLifecycle 组件 config.viewLifecycle = lifecycle; } @@ -122,7 +104,7 @@ public class EyeTransitionManager : MonoBehaviour [YarnCommand("SetExternalError")] - public void SetExternalError(string targetViewStateName,bool hasExternalError) + public void SetExternalError(string targetViewStateName, bool hasExternalError) { ViewState targetViewState; if (!Enum.TryParse(targetViewStateName, out targetViewState)) @@ -130,14 +112,15 @@ public class EyeTransitionManager : MonoBehaviour Debug.LogError("Invalid ViewState name: " + targetViewStateName); return; - } + if (!viewConfigDictionary.TryGetValue(targetViewState, out ViewConfig config)) return; - config.socket.targetData.isExternalError=hasExternalError; + config.socket.targetData.isExternalError = hasExternalError; } + [YarnCommand("SetIsRunning")] - public void SetIsRunning(string targetViewStateName,bool isRunning) + public void SetIsRunning(string targetViewStateName, bool isRunning) { ViewState targetViewState; if (!Enum.TryParse(targetViewStateName, out targetViewState)) @@ -145,17 +128,17 @@ public class EyeTransitionManager : MonoBehaviour Debug.LogError("Invalid ViewState name: " + targetViewStateName); return; - } + if (!viewConfigDictionary.TryGetValue(targetViewState, out ViewConfig config)) return; - config.socket.targetData.isRunning=isRunning; + config.socket.targetData.isRunning = isRunning; } private void InitializeView() { // 默认激活 MainView - SetView(ViewState.MainView); + SetView(ViewState.MainView); } private void SetView(ViewState viewState) @@ -165,70 +148,77 @@ public class EyeTransitionManager : MonoBehaviour { foreach (var viewConfig in viewConfigs) { - if(viewConfig.viewPanel!=null) - viewConfig.viewPanel.SetActive(false); + if (viewConfig.viewPanel != null) + viewConfig.viewPanel.SetActive(false); //viewConfig.viewLifecycle?.OnExit(); // 初始化视图 } + return; } if (!viewConfigDictionary.TryGetValue(viewState, out ViewConfig config)) return; - if(config.viewPanel!=null) + if (config.viewPanel != null) { config.viewPanel.SetActive(true); } - if(config.viewLifecycle!=null) + + if (config.viewLifecycle != null) { config.viewLifecycle?.OnEnter(); // 初始化视图 } } - private void ExitView(ViewState viewState) + + private void ExitView(ViewState viewState) { if (!viewConfigDictionary.TryGetValue(viewState, out ViewConfig config)) return; - if(config.viewPanel!=null) + if (config.viewPanel != null) { config.viewPanel.SetActive(false); } - if(config.viewLifecycle!=null) + + if (config.viewLifecycle != null) { config.viewLifecycle?.OnExit(); // 初始化视图 } } - - [YarnCommand("BackToMainView")] + + [YarnCommand("BackToMainView")] public void BackToFace() { StartCoroutine(StartTransitionCoroutine("MainView")); } + // Yarn 命令,开始视图过渡 [YarnCommand("start_transition")] public IEnumerator StartTransitionCoroutine(string targetViewStateName) { - Debug.Log("start_transition To "+targetViewStateName); + Debug.Log("start_transition To " + targetViewStateName); //eyeManager.EyeEffectInit(); //memoryProcess.Init(); ViewState targetViewState; if (!Enum.TryParse(targetViewStateName, out targetViewState)) { Debug.LogError("Invalid ViewState name: " + targetViewStateName); - } - if(targetViewStateName=="MainView") + + if (targetViewStateName == "MainView") { StartTransition(targetViewState); while (isTransitioning) { yield return null; } + yield break; } - if (!viewConfigDictionary.TryGetValue(targetViewState, out ViewConfig targetConfig)) - { - Debug.LogError("Invalid Viewconfig name: " + targetViewStateName); + + if (!viewConfigDictionary.TryGetValue(targetViewState, out ViewConfig targetConfig)) + { + Debug.LogError("Invalid Viewconfig name: " + targetViewStateName); yield break; - } + } StartTransition(targetViewState); while (isTransitioning) @@ -241,7 +231,7 @@ public class EyeTransitionManager : MonoBehaviour // 开始视图过渡 private void StartTransition(ViewState targetViewState) { - AudioManager.PauseMemoryAudio(); + AudioManager.PauseMemoryAudio(); // 如果正在进行视图过渡,或者目标视图是当前视图,或者 MemoryProcess 正在处理,就不进行视图过渡 //if (isTransitioning || currentViewState == targetViewState || (memoryProcess != null && memoryProcess.IsProcessing())) if (isTransitioning || currentViewState == targetViewState) @@ -252,9 +242,9 @@ public class EyeTransitionManager : MonoBehaviour // 开始视图过渡 isTransitioning = true; - + if (targetViewState == ViewState.MainView) - { + { Debug.Log("into mainview"); // Zoom Out 的时候,先黑屏淡入 blackScreenImage.gameObject.SetActive(true); @@ -262,24 +252,20 @@ public class EyeTransitionManager : MonoBehaviour zoomOutSequence.Append(blackScreenImage.DOFade(1f, zoomDuration / 2)); // 在黑屏淡入完成后关闭 Panel - zoomOutSequence.AppendCallback(() => - { - ExitView(currentViewState); - // foreach (var viewConfig in viewConfigs) - // { - // viewConfig.viewPanel.SetActive(false); - // } - }); + zoomOutSequence.AppendCallback(() => { ExitView(currentViewState); }); // 开始淡出黑屏 - zoomOutSequence.Append(blackScreenImage.DOFade(0f, zoomDuration).OnComplete(() => blackScreenImage.gameObject.SetActive(false))); - zoomOutSequence.Insert(zoomDuration / 2,Camera.main.DOOrthoSize(5f, zoomDuration).SetEase(Ease.OutCubic)); - zoomOutSequence.Insert(zoomDuration / 2, Camera.main.transform.DOMove(new UnityEngine.Vector3(0,0,-10) , zoomDuration).SetEase(Ease.OutCubic)); - - if(projector.localPosition.y<=-1) + zoomOutSequence.Append(blackScreenImage.DOFade(0f, zoomDuration) + .OnComplete(() => blackScreenImage.gameObject.SetActive(false))); + zoomOutSequence.Insert(zoomDuration / 2, Camera.main.DOOrthoSize(5f, zoomDuration).SetEase(Ease.OutCubic)); + zoomOutSequence.Insert(zoomDuration / 2, + Camera.main.transform.DOMove(new UnityEngine.Vector3(0, 0, -10), zoomDuration).SetEase(Ease.OutCubic)); + + if (projector.localPosition.y <= -1) { - zoomOutSequence.Append(projector.DOLocalMoveY(-1, zoomDuration).SetEase(Ease.OutCubic)); + zoomOutSequence.Append(projector.DOLocalMoveY(-1, zoomDuration).SetEase(Ease.OutCubic)); } + // 在整个动画完成后更新视图状态 zoomOutSequence.OnComplete(() => { @@ -295,7 +281,6 @@ public class EyeTransitionManager : MonoBehaviour else { - if (!viewConfigDictionary.TryGetValue(targetViewState, out ViewConfig targetConfig)) return; AudioManager.RandomPlayInteraction(targetConfig.soundName); @@ -303,30 +288,35 @@ public class EyeTransitionManager : MonoBehaviour Sequence zoomInSequence = DOTween.Sequence(); Sequence roateSequence = DOTween.Sequence(); - float FadeTiming=zoomDuration/4; + float FadeTiming = zoomDuration / 4; if (targetViewState == ViewState.MemoryView) { - FadeTiming*=5f; - - zoomInSequence.Append(projector.DOLocalMoveY(-5, zoomDuration).SetEase(Ease.OutElastic,0.5f)); - zoomInSequence.AppendCallback(() => - { - }); + FadeTiming *= 5f; + + zoomInSequence.Append(projector.DOLocalMoveY(-5, zoomDuration).SetEase(Ease.OutElastic, 0.5f)); + zoomInSequence.AppendCallback(() => { }); } - zoomInSequence.Append(Camera.main.DOOrthoSize(targetConfig.cameraSize, zoomDuration).SetEase(Ease.OutCubic)); - zoomInSequence.Join( Camera.main.transform.DOMove(new UnityEngine.Vector3(targetConfig.cameraPos.x,targetConfig.cameraPos.y,-10), zoomDuration).SetEase(Ease.OutCubic)); - + + zoomInSequence.Append(Camera.main.DOOrthoSize(targetConfig.cameraSize, zoomDuration) + .SetEase(Ease.OutCubic)); + zoomInSequence.Join(Camera.main.transform + .DOMove(new UnityEngine.Vector3(targetConfig.cameraPos.x, targetConfig.cameraPos.y, -10), zoomDuration) + .SetEase(Ease.OutCubic)); + // 在 Zoom 到一半时开始黑屏过渡 - zoomInSequence.Insert(FadeTiming, blackScreenImage.DOFade(1f, zoomDuration / 2).OnStart(() => blackScreenImage.gameObject.SetActive(true))); + zoomInSequence.Insert(FadeTiming, + blackScreenImage.DOFade(1f, zoomDuration / 2) + .OnStart(() => blackScreenImage.gameObject.SetActive(true))); // 在整个 Zoom 完成后激活 Eye View zoomInSequence.OnComplete(() => { - if(zoomInSequence!=null) + if (zoomInSequence != null) { zoomInSequence.Kill(); } + ExitView(currentViewState); SetView(targetViewState); FadeFromBlack(() => @@ -335,11 +325,12 @@ public class EyeTransitionManager : MonoBehaviour currentViewState = targetViewState; isTransitioning = false; OnGetDeepView.Invoke(); - if(targetConfig.audioName!=null) + if (targetConfig.audioName != null) { AudioManager.PlayAmb1Audio(targetConfig.audioName); } - if(targetConfig.viewLifecycle!=null) + + if (targetConfig.viewLifecycle != null) { targetConfig.viewLifecycle?.OnShow(); // 初始化视图 } @@ -347,6 +338,7 @@ public class EyeTransitionManager : MonoBehaviour }); } } + private void FadeFromBlack(TweenCallback onComplete) { blackScreenImage.DOFade(0f, 1f).OnComplete(() => @@ -360,4 +352,4 @@ public class EyeTransitionManager : MonoBehaviour { StartTransition(targetViewState); } -} +} \ No newline at end of file diff --git a/Assets/Prototype/佩佩/Scripts/Manual/ManualManager.cs b/Assets/Prototype/佩佩/Scripts/Manual/ManualManager.cs index e8bb41eec..69d9927cc 100644 --- a/Assets/Prototype/佩佩/Scripts/Manual/ManualManager.cs +++ b/Assets/Prototype/佩佩/Scripts/Manual/ManualManager.cs @@ -7,17 +7,17 @@ using TMPro; public class ManualManager : MonoBehaviour { public List pages; - public EyeTransitionManager eyeTransitionManager; - public GameObject manualGameObject; - public Button manualButton; - public GameObject executeWindow; - public TextMeshProUGUI executeWindowText; - public Button executeWindowButton; - public Button nextPageButton; - public Button previousPageButton; + public EyeTransitionManager eyeTransitionManager; + public GameObject manualGameObject; + public Button manualButton; + public GameObject executeWindow; + public TextMeshProUGUI executeWindowText; + public Button executeWindowButton; + public Button nextPageButton; + public Button previousPageButton; private bool isManualVisible = false; - private int currentIndex = 0; + private int currentIndex = 0; private Entry currentEntry; // 添加一个变量来保存当前选中的条目 private void Start() @@ -25,12 +25,12 @@ public class ManualManager : MonoBehaviour foreach (var page in pages) { page.SetupPage(this, eyeTransitionManager); - page.gameObject.SetActive(false); // 初始化时隐藏所有页面 + page.gameObject.SetActive(false); // 初始化时隐藏所有页面 } manualButton.onClick.AddListener(ToggleManual); - nextPageButton.onClick.AddListener(NextPage); - previousPageButton.onClick.AddListener(PreviousPage); + nextPageButton.onClick.AddListener(NextPage); + previousPageButton.onClick.AddListener(PreviousPage); } private void ToggleManual() @@ -39,13 +39,13 @@ public class ManualManager : MonoBehaviour manualGameObject.SetActive(isManualVisible); if (isManualVisible) { - pages[currentIndex].gameObject.SetActive(true); // 显示当前页面 + pages[currentIndex].gameObject.SetActive(true); // 显示当前页面 } else { foreach (var page in pages) { - page.gameObject.SetActive(false); // 隐藏所有页面 + page.gameObject.SetActive(false); // 隐藏所有页面 } } } @@ -58,7 +58,7 @@ public class ManualManager : MonoBehaviour executeWindowButton.onClick.AddListener(() => { executeWindow.SetActive(false); - ExecuteCode(); // 在这里添加执行代码的逻辑 + ExecuteCode(); // 在这里添加执行代码的逻辑 }); } @@ -83,6 +83,7 @@ public class ManualManager : MonoBehaviour break; } } + executeWindowButton.onClick.RemoveAllListeners(); // 执行完操作后,移除监听器 } @@ -90,9 +91,9 @@ public class ManualManager : MonoBehaviour { if (currentIndex < pages.Count - 1) { - pages[currentIndex].gameObject.SetActive(false); // 隐藏当前页面 + pages[currentIndex].gameObject.SetActive(false); // 隐藏当前页面 currentIndex++; - pages[currentIndex].gameObject.SetActive(true); // 显示新页面 + pages[currentIndex].gameObject.SetActive(true); // 显示新页面 } } @@ -100,10 +101,9 @@ public class ManualManager : MonoBehaviour { if (currentIndex > 0) { - pages[currentIndex].gameObject.SetActive(false); // 隐藏当前页面 + pages[currentIndex].gameObject.SetActive(false); // 隐藏当前页面 currentIndex--; - pages[currentIndex].gameObject.SetActive(true); // 显示新页面 + pages[currentIndex].gameObject.SetActive(true); // 显示新页面 } } -} - +} \ No newline at end of file diff --git a/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs b/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs index 3190a8cf0..719619b37 100644 --- a/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs +++ b/Assets/Prototype/佩佩/Scripts/MemoryProcess.cs @@ -31,7 +31,7 @@ public class MemoryProcess : MonoBehaviour private bool isProcessing = false; // 新增变量来追踪是否正在处理记忆 - private bool isColorful = false; // + private bool isColorful = false; // private bool isFrequencyFound = false; // 追踪是否找到目标频率 private bool isClarityFound = false; // 追踪是否找到目标清晰度 @@ -45,49 +45,40 @@ public class MemoryProcess : MonoBehaviour public Material fadeMaterial; private Dictionary processedPunchTapes = new Dictionary(); - + public void OpenMemoryView() { memoryView.gameObject.SetActive(true); - // coverOpen.SetActive(true); - // coverClose.SetActive(false); } + public IEnumerator DropMemoryProjector() { Sequence zoomInSequence = DOTween.Sequence(); - zoomInSequence.Append(projector.transform.DOLocalMoveY(-5, 2f).SetEase(Ease.OutElastic,0.5f)); + zoomInSequence.Append(projector.transform.DOLocalMoveY(-5, 2f).SetEase(Ease.OutElastic, 0.5f)); yield return zoomInSequence.WaitForCompletion(); } + public IEnumerator PullMemoryProjector() { Sequence zoomInSequence = DOTween.Sequence(); - zoomInSequence.Append(projector.transform.DOLocalMoveY(0, 2f).SetEase(Ease.OutElastic,0.5f)); + zoomInSequence.Append(projector.transform.DOLocalMoveY(0, 2f).SetEase(Ease.OutElastic, 0.5f)); yield return zoomInSequence.WaitForCompletion(); } + public void CloseMemoryView() { memoryView.gameObject.SetActive(false); } - public void Initialize() - { - // 初始化逻辑 - Debug.Log("MemoryView initialized."); - } - public void OnEnter() + public void OnShow() { - Debug.Log("memoryView entered."); - } - public void OnShow() - { Debug.Log("memoryView showed."); - clueSlot=FindObjectOfType(); + clueSlot = FindObjectOfType(); FavoritesManager.Instance.OpenFavorites(); - Color color = playBackground.color; - color.a = 0f; - playBackground.color = color; - playBackground.gameObject.SetActive(false); - //DialogController.Instance.StartDialogNode("OnMemoryViewShow"); + Color color = playBackground.color; + color.a = 0f; + playBackground.color = color; + playBackground.gameObject.SetActive(false); } public void OnExit() @@ -95,15 +86,16 @@ public class MemoryProcess : MonoBehaviour FavoritesManager.Instance.CloseFavorites(); // 离开视图时的逻辑 Debug.Log("MemoryView exited."); - } - private void Awake() + + private void Awake() { InitSystem(); } - private void InitSystem() + + private void InitSystem() { - FixSystemCenter.SystemDic.Register(this); + FixSystemCenter.SystemDic.Register(this); } @@ -113,45 +105,50 @@ public class MemoryProcess : MonoBehaviour //searchMemoryButton.onClick.AddListener(SearchMemory); // 初始化UI状态 - Init(); + Init(); } + float GetRandomNumber() -{ - // 随机决定选择哪个区间 - if (Random.value < 0.5f) // 50% 概率选择第一个区间 { - return Random.Range(0.5f, 2f); + // 随机决定选择哪个区间 + if (Random.value < 0.5f) // 50% 概率选择第一个区间 + { + return Random.Range(0.5f, 2f); + } + else // 50% 概率选择第二个区间 + { + return Random.Range(4f, 5.5f); + } } - else // 50% 概率选择第二个区间 - { - return Random.Range(4f, 5.5f); - } -} + void OnFrequencyChanged(float value) { float distance = Mathf.Abs(value - targetFrequency); UpdateShaderParameters(distance); CheckIfFound(distance, ref isFrequencyFound); // 这里更新 isFrequencyFound } -void OnClarityChanged(float value) -{ - float distance = Mathf.Abs(value - targetClarity); - float maxDistance = Mathf.Max( - Mathf.Abs(claritySlider.maxValue - targetClarity), - Mathf.Abs(claritySlider.minValue - targetClarity) - ); - float t = Mathf.Clamp01(distance / maxDistance); - - UpdateClarityShaderParameters(t); - CheckIfFound(t, ref isClarityFound); // 这里更新 isClarityFound -} - void OnSearchComplete() + + void OnClarityChanged(float value) + { + float distance = Mathf.Abs(value - targetClarity); + float maxDistance = Mathf.Max( + Mathf.Abs(claritySlider.maxValue - targetClarity), + Mathf.Abs(claritySlider.minValue - targetClarity) + ); + float t = Mathf.Clamp01(distance / maxDistance); + + UpdateClarityShaderParameters(t); + CheckIfFound(t, ref isClarityFound); // 这里更新 isClarityFound + } + + void OnSearchComplete() { Debug.Log("Memory search completed."); frequencySlider.interactable = false; claritySlider.interactable = false; StartCoroutine(PlayMemory()); } + void CheckIfFound(float distance, ref bool isFound) { if (distance < lockThreshold) @@ -179,72 +176,74 @@ void OnClarityChanged(float value) processMaterial.SetFloat("_FullAlphaDissolveFade", alpha); } } - - } - void UpdateClarityShaderParameters(float t) -{ - if (memoryMaterial != null) - { - float smoothT = Mathf.SmoothStep(0, 1, t); - float pixelateSize; - // 根据 t 的值线性插值材质参数,实现平滑过渡 - //float pixelateSize = Mathf.Lerp(512, 20, smoothT); - float offsetUvX = Mathf.Lerp(0, 0.12f, smoothT); - float offsetUvY = Mathf.Lerp(0, 0.18f, smoothT); - float distortAmount = Mathf.Lerp(0, 1.735f, smoothT); - - if (t >= 0.7f && t <= 1) - { - // 在 t 值为 0.7 到 1 时,PixelateSize 在 15 到 30 之间变化 - pixelateSize = Mathf.Lerp(30, 15, Mathf.InverseLerp(0.7f, 1f, t)); - } - else if (t > 0.35f && t < 0.7f) - { - // 在 t 值为 0.35 到 0.7 时,PixelateSize 在 30 到 50 之间变化 - pixelateSize = Mathf.Lerp(80, 30, Mathf.InverseLerp(0.35f, 0.7f, t)); - } - else - { - // 在 t 值小于 0.35 时,PixelateSize 在 50 到 512 之间变化 - pixelateSize = Mathf.Lerp(512, 80, Mathf.InverseLerp(0f, 0.35f, t)); } + void UpdateClarityShaderParameters(float t) + { + if (memoryMaterial != null) + { + float smoothT = Mathf.SmoothStep(0, 1, t); + float pixelateSize; + // 根据 t 的值线性插值材质参数,实现平滑过渡 + //float pixelateSize = Mathf.Lerp(512, 20, smoothT); + float offsetUvX = Mathf.Lerp(0, 0.12f, smoothT); + float offsetUvY = Mathf.Lerp(0, 0.18f, smoothT); + float distortAmount = Mathf.Lerp(0, 1.735f, smoothT); - memoryMaterial.SetFloat("_PixelateSize", pixelateSize); - memoryMaterial.SetFloat("_OffsetUvX", offsetUvX); - memoryMaterial.SetFloat("_OffsetUvY", offsetUvY); - memoryMaterial.SetFloat("_DistortAmount", distortAmount); + if (t >= 0.7f && t <= 1) + { + // 在 t 值为 0.7 到 1 时,PixelateSize 在 15 到 30 之间变化 + pixelateSize = Mathf.Lerp(30, 15, Mathf.InverseLerp(0.7f, 1f, t)); + } + else if (t > 0.35f && t < 0.7f) + { + // 在 t 值为 0.35 到 0.7 时,PixelateSize 在 30 到 50 之间变化 + pixelateSize = Mathf.Lerp(80, 30, Mathf.InverseLerp(0.35f, 0.7f, t)); + } + else + { + // 在 t 值小于 0.35 时,PixelateSize 在 50 到 512 之间变化 + pixelateSize = Mathf.Lerp(512, 80, Mathf.InverseLerp(0f, 0.35f, t)); + } + + + memoryMaterial.SetFloat("_PixelateSize", pixelateSize); + memoryMaterial.SetFloat("_OffsetUvX", offsetUvX); + memoryMaterial.SetFloat("_OffsetUvY", offsetUvY); + memoryMaterial.SetFloat("_DistortAmount", distortAmount); + } } -} + public void Init() { - isFrequencyFound=false; - isClarityFound=false; - isProcessing=false; + isFrequencyFound = false; + isClarityFound = false; + isProcessing = false; if (frequencySlider != null) { frequencySlider.onValueChanged.AddListener(OnFrequencyChanged); frequencySlider.gameObject.SetActive(false); - frequencySlider.value=3; + frequencySlider.value = 3; frequencySlider.interactable = true; - - } + } + if (claritySlider != null) { claritySlider.onValueChanged.AddListener(OnClarityChanged); claritySlider.gameObject.SetActive(false); - claritySlider.value=3; + claritySlider.value = 3; claritySlider.interactable = true; - } - memoryProcessImage.gameObject.SetActive(true); - processMaterial=memoryProcessImage.material; - memoryMaterial=memoryFinishedImage.material; + } + + memoryProcessImage.gameObject.SetActive(true); + processMaterial = memoryProcessImage.material; + memoryMaterial = memoryFinishedImage.material; //memoryFinishedImage.gameObject.SetActive(false); memoryFinishedImageNoColor.gameObject.SetActive(false); processMaterial.SetFloat("_FullAlphaDissolveFade", 1); processMaterial.SetFloat("_GlitchFade", 0); processMaterial.SetFloat("_StrongTintFade", 1); - float distance = Mathf.Abs(3 - targetClarity); + float distance = Mathf.Abs(3 - targetClarity); // 计算滑块值与目标清晰度之间的最大可能距离 float maxDistance = Mathf.Max( Mathf.Abs(claritySlider.maxValue - targetClarity), @@ -252,15 +251,15 @@ void OnClarityChanged(float value) ); // 归一化距离,确保 t 在 0 到 1 之间,且当滑块值等于目标清晰度时,t 等于 1 float t = Mathf.Clamp01(distance / maxDistance); - UpdateClarityShaderParameters(t); - PunchTape=null; - Color color = playBackground.color; - color.a = 0f; - playBackground.color = color; + UpdateClarityShaderParameters(t); + PunchTape = null; + Color color = playBackground.color; + color.a = 0f; + playBackground.color = color; playBackground.gameObject.SetActive(false); } -[YarnCommand("MemoryFinished")] + [YarnCommand("MemoryFinished")] public IEnumerator MemoryFinished() { AudioManager.PauseMemoryAudio(); @@ -274,30 +273,31 @@ void OnClarityChanged(float value) // Initialize and release slot Init(); - clueSlot.punchTape.used=true; + clueSlot.punchTape.used = true; clueSlot.ReleaseSlot(); - } -[YarnCommand("ColorFadeOut")] -public IEnumerator ColorFadeOut() -{ - memoryFinishedImageForFade.sprite=memoryFinishedImage.sprite; - memoryFinishedImageNoColor.sprite=memoryFinishedImage.sprite; - memoryFinishedImageForFade.gameObject.SetActive(true); - memoryFinishedImageNoColor.gameObject.SetActive(true); - memoryFinishedImage.gameObject.SetActive(false); - - AudioManager.RandomPlayInteraction("colorerase"); - AudioManager.PauseMemoryAudio(); - Tween tween = fadeMaterial.DOFloat(-3, "_DirectionalDistortionFade", 3); - yield return tween.WaitForCompletion(); -} -[YarnCommand("PlayMemory")] -public IEnumerator PlayMemory(bool useYarn=false,string memName="") + + [YarnCommand("ColorFadeOut")] + public IEnumerator ColorFadeOut() { - if(useYarn) + memoryFinishedImageForFade.sprite = memoryFinishedImage.sprite; + memoryFinishedImageNoColor.sprite = memoryFinishedImage.sprite; + memoryFinishedImageForFade.gameObject.SetActive(true); + memoryFinishedImageNoColor.gameObject.SetActive(true); + memoryFinishedImage.gameObject.SetActive(false); + + AudioManager.RandomPlayInteraction("colorerase"); + AudioManager.PauseMemoryAudio(); + Tween tween = fadeMaterial.DOFloat(-3, "_DirectionalDistortionFade", 3); + yield return tween.WaitForCompletion(); + } + + [YarnCommand("PlayMemory")] + public IEnumerator PlayMemory(bool useYarn = false, string memName = "") + { + if (useYarn) { - fadeMaterial.SetFloat("_DirectionalDistortionFade",-15); + fadeMaterial.SetFloat("_DirectionalDistortionFade", -15); memoryFinishedImage.gameObject.SetActive(true); FavoritesManager.Instance.CloseFavorites(); Sprite memSprite = Resources.Load("Art/Memory/" + memName); @@ -307,29 +307,12 @@ public IEnumerator PlayMemory(bool useYarn=false,string memName="") { Debug.LogError("Memory not found: " + memName); } - AudioManager.PlayMemoryAudio("mem_"+memName); + + AudioManager.PlayMemoryAudio("mem_" + memName); playBackground.gameObject.SetActive(true); //FavoritesManager.Instance.CloseFavorites(); playBackground.color = new Color(playBackground.color.r, playBackground.color.g, playBackground.color.b, 0); - yield return playBackground.DOFade(1f, 1f).WaitForCompletion(); // Fade to fully opaque over 1 second - - // Set material properties - processMaterial.SetFloat("_FullAlphaDissolveFade", 0); - memoryMaterial.SetFloat("_PixelateSize", 512); - memoryMaterial.SetFloat("_OffsetUvX", 0); - memoryMaterial.SetFloat("_OffsetUvY", 0); - memoryMaterial.SetFloat("_DistortAmount", 0); - } - else - { - FavoritesManager.Instance.CloseFavorites(); - // Activate playBackground and fade in alpha from 0 to 1 - AudioManager.PlayMemoryAudio("mem_"+clueSlot.punchTape.MemoryIndex); - playBackground.gameObject.SetActive(true); - //FavoritesManager.Instance.CloseFavorites(); - playBackground.color = new Color(playBackground.color.r, playBackground.color.g, playBackground.color.b, 0); - yield return playBackground.DOFade(1f, 1f).WaitForCompletion(); // Fade to fully opaque over 1 second // Set material properties @@ -338,82 +321,71 @@ public IEnumerator PlayMemory(bool useYarn=false,string memName="") memoryMaterial.SetFloat("_OffsetUvX", 0); memoryMaterial.SetFloat("_OffsetUvY", 0); memoryMaterial.SetFloat("_DistortAmount", 0); - DialogController.Instance.StartDialogNode(clueSlot.punchTape.ClueName); - } - + else + { + FavoritesManager.Instance.CloseFavorites(); + // Activate playBackground and fade in alpha from 0 to 1 + AudioManager.PlayMemoryAudio("mem_" + clueSlot.punchTape.MemoryIndex); + playBackground.gameObject.SetActive(true); + //FavoritesManager.Instance.CloseFavorites(); + playBackground.color = new Color(playBackground.color.r, playBackground.color.g, playBackground.color.b, 0); + + yield return playBackground.DOFade(1f, 1f).WaitForCompletion(); // Fade to fully opaque over 1 second + + // Set material properties + processMaterial.SetFloat("_FullAlphaDissolveFade", 0); + memoryMaterial.SetFloat("_PixelateSize", 512); + memoryMaterial.SetFloat("_OffsetUvX", 0); + memoryMaterial.SetFloat("_OffsetUvY", 0); + memoryMaterial.SetFloat("_DistortAmount", 0); + DialogController.Instance.StartDialogNode(clueSlot.punchTape.ClueName); + } } -[YarnCommand("search_memory")] - public IEnumerator SearchMemory(PunchTape punchTape, bool isSkipDialogue=false) + + [YarnCommand("search_memory")] + public IEnumerator SearchMemory(PunchTape punchTape, bool isSkipDialogue = false) { - targetClarity=GetRandomNumber(); - targetFrequency=GetRandomNumber(); + targetClarity = GetRandomNumber(); + targetFrequency = GetRandomNumber(); FavoritesManager.Instance.CloseFavorites(); //FavoritesManager.Instance.CloseFavorites(); - if(punchTape==null) + if (punchTape == null) { Debug.Log("no punchTape"); yield break; } - PunchTape=punchTape; - // if (isSearchedBefore) - // { - // if(isSkipDialogue) - // { - // PlayMemory(true); - // } - // else - // { - // PlayMemory(); - // } - - // yield break; - // } - // if (processedPunchTapes.TryGetValue(punchTape, out bool isProcessed) && isProcessed) - // { - // Sprite memorySprite1 = Resources.Load("Art/Memory/" + PunchTape.MemoryIndex); - // memoryFinishedImage.sprite = memorySprite1; - // memoryFinishedImageNoColor.sprite = memorySprite1; - // PlayMemory(); - // yield break; - // } + PunchTape = punchTape; - AudioManager.PauseMemoryAudio(); - if (isProcessing) - { - Debug.LogWarning("Already processing a memory. Please wait until the process is finished."); - yield break; + AudioManager.PauseMemoryAudio(); + if (isProcessing) + { + Debug.LogWarning("Already processing a memory. Please wait until the process is finished."); + yield break; + } + + Sprite memorySprite = Resources.Load("Art/Memory/" + PunchTape.MemoryIndex); + memoryFinishedImage.sprite = memorySprite; + memoryFinishedImageNoColor.sprite = memorySprite; + if (memorySprite == null) + { + Debug.LogError("Memory not found: " + PunchTape.MemoryIndex); + } + + processMaterial.SetFloat("_StrongTintFade", 0); + processMaterial.SetFloat("_GlitchFade", 1); + + isProcessing = true; // 开始处理,设置为true + frequencySlider.gameObject.SetActive(true); + claritySlider.gameObject.SetActive(true); + Sequence memorySequence = DOTween.Sequence(); + + yield return memorySequence.WaitForCompletion(); } - //processedPunchTapes.Add(punchTape,true); - Sprite memorySprite = Resources.Load("Art/Memory/" + PunchTape.MemoryIndex); - memoryFinishedImage.sprite = memorySprite; - memoryFinishedImageNoColor.sprite = memorySprite; - if (memorySprite == null) - { - Debug.LogError("Memory not found: " + PunchTape.MemoryIndex); - } - // if (isColorful) - // { - // memoryFinishedImage.material.SetFloat("_DirectionalDistortionFade", -2); - // } - // else - // { - // memoryFinishedImage.material.SetFloat("_DirectionalDistortionFade", -14); - // } - //AudioManager.PlayLoopAudio("tv_noise"); - processMaterial.SetFloat("_StrongTintFade", 0); - processMaterial.SetFloat("_GlitchFade", 1); - isProcessing = true; // 开始处理,设置为true - frequencySlider.gameObject.SetActive(true); - claritySlider.gameObject.SetActive(true); - DG.Tweening.Sequence memorySequence = DOTween.Sequence(); - - yield return memorySequence.WaitForCompletion(); -} public bool IsProcessing() { return isProcessing; } -} +} \ No newline at end of file diff --git a/Assets/Prototype/佩佩/Scripts/UFProcess.cs b/Assets/Prototype/佩佩/Scripts/UFProcess.cs deleted file mode 100644 index bd948f556..000000000 --- a/Assets/Prototype/佩佩/Scripts/UFProcess.cs +++ /dev/null @@ -1,152 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; -using DG.Tweening; -using Yarn.Unity; -using AibisDream; - -public class UFProcess : MonoBehaviour,IViewLifecycle -{ - public Image memoryProcessImage; // 用于显示调取记忆的表现 - public Image memoryFinishedImage; // 用于显示记忆处理结束的表现 - public Image memoryFinishedImageColorWrong; // 用于显示记忆处理结束的表现 - public Image UFImage; // 用于显示糅合后的广告图 - public Button drawButton; // 绘图按钮 - - public Sprite defaultSprite; // 默认图片 - - private int currentMemoryIndex = 0; // 当前记忆索引 - - private bool isProcessing = false; // 新增变量来追踪是否正在处理记忆 - private void Start() - { - // 绑定绘图按钮事件 - //drawButton.onClick.AddListener(ProcessMemory); - - // 初始化UI状态 - // memoryProcessImage.gameObject.SetActive(true); - // memoryFinishedImage.gameObject.SetActive(false); - // memoryFinishedImageColorWrong.gameObject.SetActive(false); - // UFImage.gameObject.SetActive(false); - // memoryProcessImage.material.SetFloat("_StrongTintFade", 1); - // memoryProcessImage.material.SetFloat("_GlitchFade", 0); - } - public void Initialize() - { - // 初始化逻辑 - - } - - public void OnEnter() - { - - } - public void OnShow() - { - // Debug.Log("UFview Show"); - //StartCoroutine(ProcessMemory("liuying1-2")); - DialogController.Instance.StartDialogNode("OnUFViewShow"); - } - - public void OnExit() - { - - Debug.Log("EyeView exited."); - - } - - [YarnCommand("UFprocess")] - public IEnumerator ProcessMemory(string memoryFinishedImageName) - { - AudioManager.PlayLoopAudio("UFlearning"); - if (isProcessing) - { - Debug.LogWarning("Already processing a memory. Please wait until the process is finished."); - yield break; - } - isProcessing = true; // 开始处理,设置为true - yield return new WaitForSeconds(3f); - AudioManager.PauseLoopAudio(); - isProcessing = false; - //DialogController.Instance.StartDialogNode("UF进程播放完毕"); - - - // Sprite memoryFinishedSprite = Resources.Load("Art/Memory/" + memoryFinishedImageName); - // Sprite UFMemorySprite = Resources.Load("Art/Photos/" + memoryFinishedImageName+"Error"); - // if (memoryFinishedSprite == null) - // { - // Debug.LogError("Memory finished image not found: " + memoryFinishedImageName); - // yield break; - // } - - // // if (UFMemorySprite == null) - // // { - // // Debug.LogError("UF image not found: " + UFImageName); - // // yield break; - // // } - // memoryFinishedImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 - - - // // 开始处理记忆的表现 - // memoryProcessImage.gameObject.SetActive(true); - // //memoryProcessImage.sprite = defaultSprite; // 设置默认图片 - // memoryProcessImage.color = Color.white; // 设置初始颜色 - - // Sequence memorySequence = DOTween.Sequence(); - - // // 修改memoryprocess的参数 - // memorySequence.Append(memoryProcessImage.material.DOFloat(0, "_StrongTintFade", 1)); - // memorySequence.Join(memoryProcessImage.material.DOFloat(1, "_GlitchFade", 1)); - - // memorySequence.AppendInterval(2f); - - // // 记忆处理结束,激活memoryFinishedImage - // memorySequence.AppendCallback(() => - // { - // memoryFinishedImage.color= Color.white; - // memoryProcessImage.gameObject.SetActive(false); - - // memoryFinishedImage.gameObject.SetActive(true); - // memoryFinishedImage.sprite = memoryFinishedSprite; // 设置记忆处理结束的图片 - // memoryFinishedImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 - // }); - - // memorySequence.AppendInterval(0f); // 添加4秒的延时 - - // memorySequence.Append(memoryFinishedImage.material.DOFloat(1, "_TwistUvAmount", 3f)); - // memorySequence.Join(memoryFinishedImage.material.DOFloat(0, "_Alpha", 3f)); - // memorySequence.AppendInterval(1f); // 添加1.5秒的延时 - - // // 激活UFImage,并开始像素淡入效果 - // memorySequence.AppendCallback(() => - // { - // memoryFinishedImage.gameObject.SetActive(false); - // UFImage.gameObject.SetActive(true); - // UFImage.color= Color.white; - // UFImage.sprite = UFMemorySprite; // 设置糅合后的广告图 - // UFImage.material.SetFloat("Pixel_Fade", 1); // 设置 Pixel_Fade 为1 - // UFImage.rectTransform.anchoredPosition = new Vector2(0, -111f); // 重置位置 - // }); - - // // Pixel_Fade 从1变为0,持续1.5秒 - // memorySequence.Append(DOTween.To(() => UFImage.material.GetFloat("Pixel_Fade"), x => UFImage.material.SetFloat("Pixel_Fade", x), 0, 3f)); - - // memorySequence.AppendInterval(1f); // 添加2秒的延时 - - // // UFImage向右移动 - // memorySequence.Append(UFImage.rectTransform.DOAnchorPosX(1000, 1f)); // 假设向右移动1000单位 - - // // 序列完成时更新索引 - // memorySequence.OnComplete(() => - // { - // UFImage.gameObject.SetActive(false); - // isProcessing = false; // 处理完成,设置为false - // AudioManager.PauseLoopAudio(); - // }); - } - public bool IsProcessing() - { - return isProcessing; - } -} diff --git a/Assets/Prototype/佩佩/Scripts/UFProcess.cs.meta b/Assets/Prototype/佩佩/Scripts/UFProcess.cs.meta deleted file mode 100644 index e91f75385..000000000 --- a/Assets/Prototype/佩佩/Scripts/UFProcess.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8d90b606a3de9db4b8ba9429b71a430c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prototype/佩佩/Scripts/ViewCameraManager.cs b/Assets/Prototype/佩佩/Scripts/ViewCameraManager.cs index f910c5c8b..80ec59a43 100644 --- a/Assets/Prototype/佩佩/Scripts/ViewCameraManager.cs +++ b/Assets/Prototype/佩佩/Scripts/ViewCameraManager.cs @@ -3,18 +3,16 @@ using DG.Tweening; public class ViewCameraManager : MonoBehaviour { - //public Transform targetTransform; // 目标位置 public Vector2 minBounds; // 相机允许移动的最小边界 public Vector2 maxBounds; // 相机允许移动的最大边界 private Camera cam; - private Vector3 smoothVelocity = Vector3.zero; - public float smoothTime = 0.3f; // 相机移动的平滑时间 private void Awake() { cam = GetComponent(); } + public void MoveCameraTo(Transform newTarget, float duration) { Vector3 targetPosition = newTarget.position; @@ -30,6 +28,7 @@ public class ViewCameraManager : MonoBehaviour // 使用 DOTween 平滑地移动相机 cam.transform.DOMove(targetPosition, duration).SetEase(Ease.InOutSine); } + public void SetCameraPosition(Transform newTarget) { Vector3 targetPosition = newTarget.position; @@ -46,26 +45,6 @@ public class ViewCameraManager : MonoBehaviour cam.transform.position = targetPosition; } - /*private void LateUpdate() - { - if (targetTransform != null) - { - Vector3 targetPosition = targetTransform.position; - Vector3 cameraPosition = cam.transform.position; - - float camHeight = cam.orthographicSize * 2; - float camWidth = camHeight * cam.aspect; - - // 限制相机位置不超过边界,同时考虑到相机的大小 - targetPosition.x = Mathf.Clamp(targetPosition.x, minBounds.x + camWidth / 2, maxBounds.x - camWidth / 2); - targetPosition.y = Mathf.Clamp(targetPosition.y, minBounds.y + camHeight / 2, maxBounds.y - camHeight / 2); - targetPosition.z = cameraPosition.z; // 保持相机的Z轴位置不变 - - // 使用平滑阻尼来移动相机 - cam.transform.position = Vector3.SmoothDamp(cameraPosition, targetPosition, ref smoothVelocity, smoothTime); - } - }*/ - // 在编辑器中绘制相机边界 private void OnDrawGizmos() { @@ -75,4 +54,4 @@ public class ViewCameraManager : MonoBehaviour Gizmos.DrawLine(new Vector2(maxBounds.x, maxBounds.y), new Vector2(minBounds.x, maxBounds.y)); Gizmos.DrawLine(new Vector2(minBounds.x, maxBounds.y), new Vector2(minBounds.x, minBounds.y)); } -} +} \ No newline at end of file diff --git a/Assets/Resources/Prefabs/UI/Box.prefab b/Assets/Resources/Prefabs/UI/Box.prefab index ee7d36d75..2ab81a759 100644 --- a/Assets/Resources/Prefabs/UI/Box.prefab +++ b/Assets/Resources/Prefabs/UI/Box.prefab @@ -515,8 +515,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 156, y: -53} - m_SizeDelta: {x: 200, y: 50} + m_AnchoredPosition: {x: 297.8283, y: -53} + m_SizeDelta: {x: 483.6566, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6323810537521366264 CanvasRenderer: @@ -609,7 +609,7 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} + m_margin: {x: 0, y: 0, z: -0.00018310547, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 m_hasFontAssetChanged: 0 diff --git a/Assets/Resources/Yarn/ShitouFunctional1/ShitouFunctional1.yarn b/Assets/Resources/Yarn/ShitouFunctional1/ShitouFunctional1.yarn index b2cdf8d78..6268d73d1 100644 --- a/Assets/Resources/Yarn/ShitouFunctional1/ShitouFunctional1.yarn +++ b/Assets/Resources/Yarn/ShitouFunctional1/ShitouFunctional1.yarn @@ -269,8 +269,12 @@ position: 211,-1006 --- //gamestage:1-引入对话;2-检查;3-检查后对话;4-调速;5-调速后对话(冷却液) -//检查阶段 +// 引入对话 +<> + <> +<> +//检查阶段 <> <> <> diff --git a/Assets/Scenes/ExpressFixScene.unity b/Assets/Scenes/ExpressFixScene.unity index feeecdea3..7cbf12001 100644 --- a/Assets/Scenes/ExpressFixScene.unity +++ b/Assets/Scenes/ExpressFixScene.unity @@ -325,13 +325,13 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 4445889917739518717, guid: 92aec29b557d59a4ca5363aadd06c7bb, type: 3} - insertIndex: 4 + insertIndex: -1 addedObject: {fileID: 0} - targetCorrespondingSourceObject: {fileID: 1185279996564305555, guid: 92aec29b557d59a4ca5363aadd06c7bb, type: 3} - insertIndex: 3 + insertIndex: -1 addedObject: {fileID: 0} - targetCorrespondingSourceObject: {fileID: 5242786820683991507, guid: 92aec29b557d59a4ca5363aadd06c7bb, type: 3} - insertIndex: 3 + insertIndex: -1 addedObject: {fileID: 0} m_SourcePrefab: {fileID: 100100000, guid: 92aec29b557d59a4ca5363aadd06c7bb, type: 3} --- !u!1 &160015711 @@ -9315,7 +9315,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &6490201648993155036 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/PeipeiFixScene.unity b/Assets/Scenes/PeipeiFixScene.unity index 7e57751d6..2763f80c9 100644 --- a/Assets/Scenes/PeipeiFixScene.unity +++ b/Assets/Scenes/PeipeiFixScene.unity @@ -2203,142 +2203,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 125795315} m_CullTransparentMesh: 1 ---- !u!1 &127398055 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 127398056} - - component: {fileID: 127398058} - - component: {fileID: 127398057} - 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 &127398056 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127398055} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1121351865} - 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 &127398057 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127398055} - 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: 'Draw - -' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - 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: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - 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 &127398058 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127398055} - m_CullTransparentMesh: 1 --- !u!1 &135806334 GameObject: m_ObjectHideFlags: 0 @@ -4806,56 +4670,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!1 &202863628 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 202863630} - - component: {fileID: 202863629} - m_Layer: 0 - m_Name: UFManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &202863629 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202863628} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8d90b606a3de9db4b8ba9429b71a430c, type: 3} - m_Name: - m_EditorClassIdentifier: - memoryProcessImage: {fileID: 0} - memoryFinishedImage: {fileID: 0} - memoryFinishedImageColorWrong: {fileID: 0} - UFImage: {fileID: 0} - drawButton: {fileID: 0} - defaultSprite: {fileID: 21300000, guid: fab06e0be9375cc4d823efa71629885c, type: 3} ---- !u!4 &202863630 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 202863628} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.27432632, y: -0.62164545, z: 0.06738746} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!21 &203595023 Material: serializedVersion: 8 @@ -5267,81 +5081,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 2 m_SpriteSortPoint: 0 ---- !u!1 &208135505 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 208135506} - - component: {fileID: 208135508} - - component: {fileID: 208135507} - m_Layer: 5 - m_Name: Back - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &208135506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208135505} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.645428, y: 0.6220993, z: 0.6220993} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 21, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &208135507 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208135505} - 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: 0, 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 &208135508 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 208135505} - m_CullTransparentMesh: 1 --- !u!21 &209854923 Material: serializedVersion: 8 @@ -8253,92 +7992,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 369252988} m_CullTransparentMesh: 1 ---- !u!1 &371870832 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 371870833} - - component: {fileID: 371870835} - - component: {fileID: 371870834} - m_Layer: 5 - m_Name: UF View - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &371870833 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 371870832} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.5, y: 1.5, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 208135506} - - {fileID: 825383427} - - {fileID: 1552647270} - - {fileID: 1437200339} - - {fileID: 853664053} - - {fileID: 882584040} - - {fileID: 1173985881} - - {fileID: 2111004558} - - {fileID: 1121351865} - - {fileID: 1339893867} - - {fileID: 664258167} - m_Father: {fileID: 755572874} - 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 &371870834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 371870832} - 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: 0, 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: 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 &371870835 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 371870832} - m_CullTransparentMesh: 1 --- !u!1 &383915069 GameObject: m_ObjectHideFlags: 0 @@ -9238,34 +8891,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 487032384} m_CullTransparentMesh: 1 ---- !u!21 &490635702 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Sprites/Default - m_Shader: {fileID: 4800000, guid: 70d75664cea27174388abd94cd6f75a8, type: 3} - m_Parent: {fileID: 2100000, guid: db840f82f0bb3d64e831e01a3e059794, type: 2} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - Pixel_Fade: 0 - m_Colors: [] - m_BuildTextureStacks: [] --- !u!1 &501441328 GameObject: m_ObjectHideFlags: 0 @@ -9526,8 +9151,8 @@ MonoBehaviour: audioName: amb_remove soundName: remove_in_1 - viewState: 2 - manager: {fileID: 202863629} - viewPanel: {fileID: 371870832} + manager: {fileID: 0} + viewPanel: {fileID: 0} cameraSize: 2 cameraPos: {x: -4.5, y: 0.5} socket: {fileID: 0} @@ -12532,250 +12157,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!21 &646403221 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: AllIn1SpriteShader/AllIn1SpriteShader - m_Shader: {fileID: 4800000, guid: a36b7719ff0465b42ab1407d67672c5f, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - TWISTUV_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _ColorRampTex: - m_Texture: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorRampTexGradient: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorSwapTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeBurnTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _GlowTex: - 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} - - _OutlineDistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OutlineTex: - m_Texture: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OverlayTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShineMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _Alpha: 1 - - _AlphaCutoffValue: 0.25 - - _AlphaOutlineBlend: 1 - - _AlphaOutlineGlow: 5 - - _AlphaOutlineMinAlpha: 0 - - _AlphaOutlinePower: 1 - - _AlphaRoundThreshold: 0.5 - - _BillboardY: 0 - - _BlurHD: 0 - - _BlurIntensity: 10 - - _Brightness: 0 - - _ChromAberrAlpha: 0.4 - - _ChromAberrAmount: 1 - - _ClipUvDown: 0 - - _ClipUvLeft: 0 - - _ClipUvRight: 0 - - _ClipUvUp: 0 - - _ColorChangeLuminosity: 0 - - _ColorChangeTolerance: 0.25 - - _ColorChangeTolerance2: 0.25 - - _ColorChangeTolerance3: 0.25 - - _ColorRampBlend: 1 - - _ColorRampLuminosity: 0 - - _ColorRampOutline: 0 - - _ColorSwapBlend: 1 - - _ColorSwapBlueLuminosity: 0.5 - - _ColorSwapGreenLuminosity: 0.5 - - _ColorSwapRedLuminosity: 0.5 - - _Contrast: 1 - - _CullingOption: 0 - - _DistortAmount: 0.5 - - _DistortTexXSpeed: 5 - - _DistortTexYSpeed: 5 - - _EditorDrawers: 6 - - _FadeAmount: -0.1 - - _FadeBurnGlow: 2 - - _FadeBurnTransition: 0.075 - - _FadeBurnWidth: 0.025 - - _FishEyeUvAmount: 0.35 - - _FlickerAlpha: 0 - - _FlickerFreq: 0.2 - - _FlickerPercent: 0.05 - - _GhostBlend: 1 - - _GhostColorBoost: 1 - - _GhostTransparency: 0 - - _GlitchAmount: 3 - - _GlitchSize: 1 - - _Glow: 10 - - _GlowGlobal: 1 - - _GradBlend: 1 - - _GradBoostX: 1.2 - - _GradBoostY: 1.2 - - _GradIsRadial: 0 - - _GrassManualAnim: 1 - - _GrassManualToggle: 0 - - _GrassRadialBend: 0.1 - - _GrassSpeed: 2 - - _GrassWind: 20 - - _GreyscaleBlend: 1 - - _GreyscaleLuminosity: 0 - - _GreyscaleOutline: 0 - - _HandDrawnAmount: 10 - - _HandDrawnSpeed: 5 - - _HitEffectBlend: 1 - - _HitEffectGlow: 5 - - _HologramBlend: 1 - - _HologramMaxAlpha: 0.75 - - _HologramMinAlpha: 0.1 - - _HologramStripesAmount: 0.1 - - _HologramStripesSpeed: 4.5 - - _HologramUnmodAmount: 0 - - _HsvBright: 1 - - _HsvSaturation: 1 - - _HsvShift: 180 - - _InnerOutlineAlpha: 1 - - _InnerOutlineGlow: 4 - - _InnerOutlineThickness: 1 - - _MaxXUV: 1 - - _MaxYUV: 1 - - _MinXUV: 0 - - _MinYUV: 0 - - _MotionBlurAngle: 0.1 - - _MotionBlurDist: 1.25 - - _MyDstMode: 10 - - _MySrcMode: 5 - - _NegativeAmount: 1 - - _OffsetUvX: 0 - - _OffsetUvY: 0 - - _OnlyInnerOutline: 0 - - _OnlyOutline: 0 - - _OutlineAlpha: 1 - - _OutlineDistortAmount: 0.5 - - _OutlineDistortTexXSpeed: 5 - - _OutlineDistortTexYSpeed: 5 - - _OutlineGlow: 1.5 - - _OutlinePixelWidth: 1 - - _OutlineTexXSpeed: 10 - - _OutlineTexYSpeed: 0 - - _OutlineWidth: 0.004 - - _OverlayBlend: 1 - - _OverlayGlow: 1 - - _OverlayTextureScrollXSpeed: 0.25 - - _OverlayTextureScrollYSpeed: 0.25 - - _PinchUvAmount: 0.35 - - _PixelateSize: 32 - - _PosterizeGamma: 0.75 - - _PosterizeNumColors: 8 - - _PosterizeOutline: 0 - - _RadialClip: 45 - - _RadialClip2: 0 - - _RadialStartAngle: 90 - - _RandomSeed: 0 - - _RectSize: 1 - - _RotateUvAmount: 0 - - _RoundWaveSpeed: 2 - - _RoundWaveStrength: 0.7 - - _ShadowAlpha: 0.5 - - _ShadowX: 0.1 - - _ShadowY: -0.05 - - _ShakeUvSpeed: 2.5 - - _ShakeUvX: 1.5 - - _ShakeUvY: 1 - - _ShineGlow: 1 - - _ShineLocation: 0.5 - - _ShineRotate: 0 - - _ShineWidth: 0.1 - - _TextureScrollXSpeed: 1 - - _TextureScrollYSpeed: 0 - - _TwistUvAmount: 1.04 - - _TwistUvPosX: 0.5 - - _TwistUvPosY: 0.5 - - _TwistUvRadius: 0.75 - - _WarpScale: 0.5 - - _WarpSpeed: 8 - - _WarpStrength: 0.025 - - _WaveAmount: 7 - - _WaveSpeed: 10 - - _WaveStrength: 7.5 - - _WaveX: 0 - - _WaveY: 0.5 - - _ZTestMode: 4 - - _ZWrite: 0 - - _ZoomUvAmount: 0.5 - m_Colors: - - _AlphaOutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _ColorChangeNewCol: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeNewCol2: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeNewCol3: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeTarget: {r: 1, g: 0, b: 0, a: 1} - - _ColorChangeTarget2: {r: 1, g: 0, b: 0, a: 1} - - _ColorChangeTarget3: {r: 1, g: 0, b: 0, a: 1} - - _ColorSwapBlue: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapGreen: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapRed: {r: 1, g: 1, b: 1, a: 1} - - _FadeBurnColor: {r: 1, g: 1, b: 0, a: 1} - - _GlowColor: {r: 1, g: 1, b: 1, a: 1} - - _GradBotLeftCol: {r: 0, g: 0, b: 1, a: 1} - - _GradBotRightCol: {r: 0, g: 1, b: 0, a: 1} - - _GradTopLeftCol: {r: 1, g: 0, b: 0, a: 1} - - _GradTopRightCol: {r: 1, g: 1, b: 0, a: 1} - - _GreyscaleTintColor: {r: 1, g: 1, b: 1, a: 1} - - _HitEffectColor: {r: 1, g: 1, b: 1, a: 1} - - _HologramStripeColor: {r: 0, g: 1, b: 1, a: 1} - - _InnerOutlineColor: {r: 1, g: 0, b: 0, a: 1} - - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _OverlayColor: {r: 1, g: 1, b: 1, a: 1} - - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - - _ShineColor: {r: 1, g: 1, b: 1, a: 1} - m_BuildTextureStacks: [] --- !u!1001 &649595758 PrefabInstance: m_ObjectHideFlags: 0 @@ -12941,140 +12322,6 @@ Transform: - {fileID: 1812529886} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &664258166 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 664258167} - - component: {fileID: 664258169} - - component: {fileID: 664258168} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &664258167 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 664258166} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - 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: 36, y: -16} - m_SizeDelta: {x: 1006.2036, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &664258168 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 664258166} - 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: "\u5360\u4F4D\uFF1AUF\u628A\u62FF\u5230\u7684\u8BB0\u5FC6\u8FDB\u884C\u5904\u7406\uFF0C\u5904\u7406\u6210\u9519\u8BEF\u7684\u989C\u8272\u4F20\u9012\u4E86\u51FA\u53BB" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - 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 &664258169 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 664258166} - m_CullTransparentMesh: 1 --- !u!1 &669097374 GameObject: m_ObjectHideFlags: 0 @@ -14427,7 +13674,6 @@ RectTransform: - {fileID: 1882069007} - {fileID: 150309217} - {fileID: 247562152} - - {fileID: 371870833} - {fileID: 503082897} - {fileID: 748395815} - {fileID: 1597388063} @@ -15499,81 +14745,6 @@ Transform: m_Children: [] m_Father: {fileID: 522320917} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &825383426 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 825383427} - - component: {fileID: 825383429} - - component: {fileID: 825383428} - m_Layer: 5 - m_Name: UF - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &825383427 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 825383426} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.2438257, y: 1.1988682, z: 1.1988682} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - 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: -111} - m_SizeDelta: {x: 1920, y: 1080} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &825383428 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 825383426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 490635702} - 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: 4a278d682a22cff42935832b97df1eff, 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 &825383429 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 825383426} - m_CullTransparentMesh: 1 --- !u!1 &839463331 GameObject: m_ObjectHideFlags: 0 @@ -15833,98 +15004,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 4843985084834002234, guid: fd04c28739017964789d58d573f9fabb, type: 3} ---- !u!1 &853664052 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 853664053} - - component: {fileID: 853664056} - - component: {fileID: 853664055} - - component: {fileID: 853664054} - m_Layer: 5 - m_Name: MemoryColorRight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &853664053 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853664052} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.94992036, y: 0.9155859, z: 0.9155859} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 25, y: -134} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &853664054 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853664052} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ee158225ee1e59f4791627785501d950, type: 3} - m_Name: - m_EditorClassIdentifier: - shaderTypes: 0 - normalStrength: 5 - normalSmoothing: 1 - computingNormal: 0 ---- !u!114 &853664055 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853664052} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 646403221} - 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: 6fc7bec4977c83145a699795210bdd65, 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 &853664056 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853664052} - m_CullTransparentMesh: 1 --- !u!1 &856179975 GameObject: m_ObjectHideFlags: 0 @@ -16235,81 +15314,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 879953259} m_CullTransparentMesh: 1 ---- !u!1 &882584039 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 882584040} - - component: {fileID: 882584042} - - component: {fileID: 882584041} - m_Layer: 5 - m_Name: MemoryFinished - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &882584040 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 882584039} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.87430674, y: 0.84270525, z: 0.84270525} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -19, y: -134} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &882584041 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 882584039} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 1625057576} - 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: f3a2676ec2594f84a896247bc5477940, 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 &882584042 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 882584039} - m_CullTransparentMesh: 1 --- !u!1 &884696050 GameObject: m_ObjectHideFlags: 0 @@ -19433,127 +18437,6 @@ Material: - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - _ShineColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] ---- !u!1 &1121351864 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1121351865} - - component: {fileID: 1121351868} - - component: {fileID: 1121351867} - - component: {fileID: 1121351866} - m_Layer: 5 - m_Name: Draw - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1121351865 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1121351864} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 127398056} - m_Father: {fileID: 371870833} - 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: -523, y: 236.2} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1121351866 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1121351864} - 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: 1121351867} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1121351867 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1121351864} - 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 &1121351868 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1121351864} - m_CullTransparentMesh: 1 --- !u!1 &1149585993 GameObject: m_ObjectHideFlags: 0 @@ -20352,81 +19235,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1170503230} m_CullTransparentMesh: 1 ---- !u!1 &1173985880 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1173985881} - - component: {fileID: 1173985883} - - component: {fileID: 1173985882} - m_Layer: 5 - m_Name: Frame - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1173985881 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1173985880} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.7099483, y: 0.7099483, z: 0.7099483} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - 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 &1173985882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1173985880} - 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: 7fceb0f4ebb3dde4ba46141586003b18, type: 3} - 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 &1173985883 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1173985880} - m_CullTransparentMesh: 1 --- !u!1 &1179266655 GameObject: m_ObjectHideFlags: 0 @@ -23162,81 +21970,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1334591741} m_CullTransparentMesh: 1 ---- !u!1 &1339893866 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1339893867} - - component: {fileID: 1339893869} - - component: {fileID: 1339893868} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1339893867 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1339893866} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.97961426, y: -7.803589} - m_SizeDelta: {x: -715.9592, y: -426.5894} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1339893868 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1339893866} - 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 &1339893869 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1339893866} - m_CullTransparentMesh: 1 --- !u!1 &1360586351 GameObject: m_ObjectHideFlags: 0 @@ -24069,98 +22802,6 @@ SpriteMask: m_BackSortingOrder: 81 m_IsCustomRangeActive: 1 m_SpriteSortPoint: 0 ---- !u!1 &1437200338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1437200339} - - component: {fileID: 1437200342} - - component: {fileID: 1437200341} - - component: {fileID: 1437200340} - m_Layer: 5 - m_Name: MemoryColorWrong - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1437200339 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437200338} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.94992036, y: 0.9155859, z: 0.9155859} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 25, y: -134} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1437200340 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437200338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ee158225ee1e59f4791627785501d950, type: 3} - m_Name: - m_EditorClassIdentifier: - shaderTypes: 0 - normalStrength: 5 - normalSmoothing: 1 - computingNormal: 0 ---- !u!114 &1437200341 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437200338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 1912430685} - 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: 6fc7bec4977c83145a699795210bdd65, 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 &1437200342 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437200338} - m_CullTransparentMesh: 1 --- !u!1 &1437519560 GameObject: m_ObjectHideFlags: 0 @@ -26150,142 +24791,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1534779240} m_CullTransparentMesh: 1 ---- !u!1 &1542173410 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1542173411} - - component: {fileID: 1542173413} - - component: {fileID: 1542173412} - 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 &1542173411 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1542173410} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2111004558} - 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 &1542173412 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1542173410} - 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: 'UF Zoom Out - -' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - 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: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - 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 &1542173413 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1542173410} - m_CullTransparentMesh: 1 --- !u!21 &1546369386 Material: serializedVersion: 8 @@ -26772,81 +25277,6 @@ Material: - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - _ShineColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] ---- !u!1 &1552647269 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1552647270} - - component: {fileID: 1552647272} - - component: {fileID: 1552647271} - m_Layer: 5 - m_Name: MemoryProcess - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1552647270 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1552647269} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.94992036, y: 0.9155859, z: 0.9155859} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 371870833} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 25, y: -134} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1552647271 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1552647269} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 2100000, guid: 2062c60dc2340294ebc2194c44c0a1d3, type: 2} - 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: 7478679191deb994c8cf7321d50b6016, 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 &1552647272 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1552647269} - m_CullTransparentMesh: 1 --- !u!1 &1560374151 GameObject: m_ObjectHideFlags: 0 @@ -27993,34 +26423,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1620905585} m_CullTransparentMesh: 1 ---- !u!21 &1625057576 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Sprites/Default - m_Shader: {fileID: 4800000, guid: 70d75664cea27174388abd94cd6f75a8, type: 3} - m_Parent: {fileID: 2100000, guid: 869d0a1cce4e6e7458a863b7a11009f1, type: 2} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - Pixel_Fade: 0 - m_Colors: [] - m_BuildTextureStacks: [] --- !u!1 &1632118594 GameObject: m_ObjectHideFlags: 0 @@ -33735,254 +32137,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 ---- !u!21 &1912430685 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: AllIn1SpriteShader/AllIn1SpriteShader - m_Shader: {fileID: 4800000, guid: a36b7719ff0465b42ab1407d67672c5f, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - CHROMABERR_ON - - DISTORT_ON - - DOODLE_ON - - GLITCH_ON - - TWISTUV_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _ColorRampTex: - m_Texture: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorRampTexGradient: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorSwapTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeBurnTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _GlowTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: dc3bd464d23fca34ab8f66a3b63f2607, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OutlineDistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OutlineTex: - m_Texture: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OverlayTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShineMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _Alpha: 1 - - _AlphaCutoffValue: 0 - - _AlphaOutlineBlend: 1 - - _AlphaOutlineGlow: 5 - - _AlphaOutlineMinAlpha: 0 - - _AlphaOutlinePower: 1 - - _AlphaRoundThreshold: 0.005 - - _BillboardY: 0 - - _BlurHD: 0 - - _BlurIntensity: 0 - - _Brightness: 0 - - _ChromAberrAlpha: 0.761 - - _ChromAberrAmount: 0.212 - - _ClipUvDown: 0 - - _ClipUvLeft: 0 - - _ClipUvRight: 0 - - _ClipUvUp: 0 - - _ColorChangeLuminosity: 0 - - _ColorChangeTolerance: 0.25 - - _ColorChangeTolerance2: 0.25 - - _ColorChangeTolerance3: 0.25 - - _ColorRampBlend: 1 - - _ColorRampLuminosity: -0.14 - - _ColorRampOutline: 0 - - _ColorSwapBlend: 1 - - _ColorSwapBlueLuminosity: 0.5 - - _ColorSwapGreenLuminosity: 0.5 - - _ColorSwapRedLuminosity: 0.5 - - _Contrast: 1 - - _CullingOption: 0 - - _DistortAmount: 0.09 - - _DistortTexXSpeed: -20.7 - - _DistortTexYSpeed: 2.7 - - _EditorDrawers: 6 - - _FadeAmount: -0.1 - - _FadeBurnGlow: 2 - - _FadeBurnTransition: 0.075 - - _FadeBurnWidth: 0.025 - - _FishEyeUvAmount: 0.35 - - _FlickerAlpha: 0 - - _FlickerFreq: 0.2 - - _FlickerPercent: 0.05 - - _GhostBlend: 1 - - _GhostColorBoost: 1 - - _GhostTransparency: 0 - - _GlitchAmount: 2.3 - - _GlitchSize: 2.35 - - _Glow: 10 - - _GlowGlobal: 1 - - _GradBlend: 1 - - _GradBoostX: 1.2 - - _GradBoostY: 1.2 - - _GradIsRadial: 0 - - _GrassManualAnim: 1 - - _GrassManualToggle: 0 - - _GrassRadialBend: 0.1 - - _GrassSpeed: 2 - - _GrassWind: 20 - - _GreyscaleBlend: 1 - - _GreyscaleLuminosity: 0 - - _GreyscaleOutline: 0 - - _HandDrawnAmount: 5.8 - - _HandDrawnSpeed: 5 - - _HitEffectBlend: 1 - - _HitEffectGlow: 5 - - _HologramBlend: 1 - - _HologramMaxAlpha: 100 - - _HologramMinAlpha: 0.94 - - _HologramStripesAmount: 0.987 - - _HologramStripesSpeed: -7.2 - - _HologramUnmodAmount: 0.516 - - _HsvBright: 1 - - _HsvSaturation: 1 - - _HsvShift: 0 - - _InnerOutlineAlpha: 1 - - _InnerOutlineGlow: 4 - - _InnerOutlineThickness: 1 - - _MaxXUV: 1 - - _MaxYUV: 1 - - _MinXUV: 0 - - _MinYUV: 0 - - _MotionBlurAngle: 0.1 - - _MotionBlurDist: 1.25 - - _MyDstMode: 10 - - _MySrcMode: 5 - - _NegativeAmount: 0 - - _OffsetUvX: 0.02 - - _OffsetUvY: 0.19 - - _OnlyInnerOutline: 0 - - _OnlyOutline: 0 - - _OutlineAlpha: 1 - - _OutlineDistortAmount: 0.5 - - _OutlineDistortTexXSpeed: 5 - - _OutlineDistortTexYSpeed: 5 - - _OutlineGlow: 1.5 - - _OutlinePixelWidth: 1 - - _OutlineTexXSpeed: 10 - - _OutlineTexYSpeed: 0 - - _OutlineWidth: 0.004 - - _OverlayBlend: 1 - - _OverlayGlow: 1 - - _OverlayTextureScrollXSpeed: 0.25 - - _OverlayTextureScrollYSpeed: 0.25 - - _PinchUvAmount: 0.35 - - _PixelateSize: 512 - - _PosterizeGamma: 0.75 - - _PosterizeNumColors: 8 - - _PosterizeOutline: 0 - - _RadialClip: 45 - - _RadialClip2: 0 - - _RadialStartAngle: 90 - - _RandomSeed: 0 - - _RectSize: 1.07 - - _RotateUvAmount: 0 - - _RoundWaveSpeed: 2 - - _RoundWaveStrength: 0.7 - - _ShadowAlpha: 0.5 - - _ShadowX: 0.1 - - _ShadowY: -0.05 - - _ShakeUvSpeed: 2.5 - - _ShakeUvX: 1.5 - - _ShakeUvY: 1 - - _ShineGlow: 1 - - _ShineLocation: 0.5 - - _ShineRotate: 0 - - _ShineWidth: 0.1 - - _TextureScrollXSpeed: 2.08 - - _TextureScrollYSpeed: 0 - - _TwistUvAmount: 0 - - _TwistUvPosX: 0.5 - - _TwistUvPosY: 0.5 - - _TwistUvRadius: 0.75 - - _WarpScale: 0.5 - - _WarpSpeed: 8 - - _WarpStrength: 0.025 - - _WaveAmount: 0 - - _WaveSpeed: 10 - - _WaveStrength: 7.5 - - _WaveX: 0 - - _WaveY: 0.5 - - _ZTestMode: 4 - - _ZWrite: 0 - - _ZoomUvAmount: 0.1 - m_Colors: - - _AlphaOutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _ColorChangeNewCol: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeNewCol2: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeNewCol3: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeTarget: {r: 1, g: 0, b: 0, a: 1} - - _ColorChangeTarget2: {r: 1, g: 0, b: 0, a: 1} - - _ColorChangeTarget3: {r: 1, g: 0, b: 0, a: 1} - - _ColorSwapBlue: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapGreen: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapRed: {r: 1, g: 1, b: 1, a: 1} - - _FadeBurnColor: {r: 1, g: 1, b: 0, a: 1} - - _GlowColor: {r: 1, g: 1, b: 1, a: 1} - - _GradBotLeftCol: {r: 0, g: 0, b: 1, a: 1} - - _GradBotRightCol: {r: 0, g: 1, b: 0, a: 1} - - _GradTopLeftCol: {r: 1, g: 0, b: 0, a: 1} - - _GradTopRightCol: {r: 1, g: 1, b: 0, a: 1} - - _GreyscaleTintColor: {r: 1, g: 1, b: 1, a: 1} - - _HitEffectColor: {r: 1, g: 1, b: 1, a: 1} - - _HologramStripeColor: {r: 0, g: 1, b: 1, a: 1} - - _InnerOutlineColor: {r: 1, g: 0, b: 0, a: 1} - - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _OverlayColor: {r: 1, g: 1, b: 1, a: 1} - - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - - _ShineColor: {r: 1, g: 1, b: 1, a: 1} - m_BuildTextureStacks: [] --- !u!1 &1912719093 GameObject: m_ObjectHideFlags: 0 @@ -34027,7 +32181,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 69cbe4fd7471394428df962240fe91f5, type: 3} m_Name: m_EditorClassIdentifier: - UFPanel: {fileID: 371870832} + UFPanel: {fileID: 0} --- !u!1 &1935891755 GameObject: m_ObjectHideFlags: 0 @@ -38521,127 +36675,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2064460273118752238, guid: ab166642babe53e4993fa1bd9bd57204, type: 3} m_PrefabInstance: {fileID: 2104582589} m_PrefabAsset: {fileID: 0} ---- !u!1 &2111004557 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2111004558} - - component: {fileID: 2111004561} - - component: {fileID: 2111004560} - - component: {fileID: 2111004559} - m_Layer: 5 - m_Name: UFBackToFace - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &2111004558 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2111004557} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1542173411} - m_Father: {fileID: 371870833} - 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: -523, y: 281} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2111004559 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2111004557} - 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: 2111004560} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &2111004560 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2111004557} - 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 &2111004561 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2111004557} - m_CullTransparentMesh: 1 --- !u!1 &2115011991 GameObject: m_ObjectHideFlags: 0 @@ -40215,7 +38248,6 @@ SceneRoots: - {fileID: 763669272} - {fileID: 110632228} - {fileID: 1604523923} - - {fileID: 202863630} - {fileID: 507625641} - {fileID: 1655025827} - {fileID: 755572874} diff --git a/Assets/Scenes/Persistence.unity b/Assets/Scenes/Persistence.unity index 579216e77..f425198f5 100644 --- a/Assets/Scenes/Persistence.unity +++ b/Assets/Scenes/Persistence.unity @@ -123,224 +123,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1001 &1759112 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1390073344} - m_Modifications: - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_isOrthographic - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: -6754007613140460815, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: origin - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -6754007613140460815, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: offsetY - value: -500 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_text - value: "\u7EBF\u7D22\u5DF2\u653E\u5165\u201C\u8BCA\u65AD\u754C\u9762\u201D" - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontSize - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_margin.z - value: 2.145874 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontSizeBase - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_isOrthographic - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_hasFontAssetChanged - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_SizeDelta.x - value: 400 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.x - value: -200 - objectReference: {fileID: 0} - - target: {fileID: 2793915599792594175, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.y - value: 49 - objectReference: {fileID: 0} - - target: {fileID: 2971839373268861373, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Name - value: ClueBoardNotification (1) - objectReference: {fileID: 0} - - target: {fileID: 2971839373268861373, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3554996813833719493, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3554996813833719493, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3554996813833719493, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.x - value: -30 - objectReference: {fileID: 0} - - target: {fileID: 3554996813833719493, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.y - value: -19 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_SizeDelta.x - value: 400 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_SizeDelta.y - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8881434730976238506, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} ---- !u!224 &1759113 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - m_PrefabInstance: {fileID: 1759112} - m_PrefabAsset: {fileID: 0} --- !u!1 &17373561 GameObject: m_ObjectHideFlags: 0 @@ -488,30 +270,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -732,6 +490,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -780,30 +562,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1024,6 +782,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -1567,30 +1349,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1811,6 +1569,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -2247,30 +2029,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -2487,6 +2245,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -2731,30 +2513,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -2979,6 +2737,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -3030,30 +2812,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -3270,6 +3028,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -4348,9 +4130,6 @@ MonoBehaviour: quitButton: {fileID: 1611684203} startTab: {fileID: 1696845841} levelTab: {fileID: 892571111} - talkSceneSoArray: - - {fileID: 11400000, guid: 10601ce26230723479d875a630f15732, type: 2} - - {fileID: 11400000, guid: ff82a99e791be3e41acf40232f908eb3, type: 2} buttonPrefab: {fileID: 1892187091667437644, guid: a619d30edcb0e9a46a29ad546f4adca7, type: 3} --- !u!1 &435293759 GameObject: @@ -4638,7 +4417,7 @@ PrefabInstance: - target: {fileID: 3510766766159879648, guid: 55eac30d86443354ebfe3cc06c7b00e8, type: 3} propertyPath: TopNotification value: - objectReference: {fileID: 903312140} + objectReference: {fileID: 0} - target: {fileID: 3510766766159879648, guid: 55eac30d86443354ebfe3cc06c7b00e8, type: 3} propertyPath: imageCluePrefab value: @@ -4881,30 +4660,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 121bb6da-9055-40a5-ae33-05be2ec09f54 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3c0ead6f-afd4-41bf-968d-0d36f758e232 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 6b671834-73b4-403d-94d3-0726554589ee - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -5085,6 +4840,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 121bb6da-9055-40a5-ae33-05be2ec09f54 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3c0ead6f-afd4-41bf-968d-0d36f758e232 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 6b671834-73b4-403d-94d3-0726554589ee + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -5201,30 +4980,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -5445,6 +5200,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -5626,30 +5405,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -5870,6 +5625,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -6336,30 +6115,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -6580,6 +6335,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -6834,127 +6613,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 571165000} m_CullTransparentMesh: 1 ---- !u!1 &578124938 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 578124939} - - component: {fileID: 578124942} - - component: {fileID: 578124941} - - component: {fileID: 578124940} - m_Layer: 5 - m_Name: ClueBoardToggleButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &578124939 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 578124938} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1773604969} - m_Father: {fileID: 1390073344} - 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: -971, y: 0} - m_SizeDelta: {x: 41.76538, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &578124940 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 578124938} - 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: 578124941} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &578124941 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 578124938} - 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 &578124942 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 578124938} - m_CullTransparentMesh: 1 --- !u!1 &614046221 GameObject: m_ObjectHideFlags: 0 @@ -7196,30 +6854,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -7440,6 +7074,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -7695,30 +7353,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -7935,6 +7569,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -8129,7 +7787,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1884409621} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: ClueBoardManager, Assembly-CSharp m_MethodName: SkipClueBoard m_Mode: 1 @@ -8221,10 +7879,16 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 18a3ec3914131d44199ae33902edf159, type: 3} m_Name: m_EditorClassIdentifier: - runMode: 1 + totalSceneSos: + - {fileID: 11400000, guid: 10601ce26230723479d875a630f15732, type: 2} + - {fileID: 11400000, guid: ff82a99e791be3e41acf40232f908eb3, type: 2} + - {fileID: 11400000, guid: 9e3b2c77ad4a9454188d458da2cf0ddd, type: 2} + - {fileID: 11400000, guid: 6d49b124127007b48b6881ce33350263, type: 2} + - {fileID: 11400000, guid: fe71f935f1f9a52458c994362567a211, type: 2} + runMode: 0 firstTalkSo: {fileID: 11400000, guid: 6d49b124127007b48b6881ce33350263, type: 2} - clinicScene: ClinicScene - testYarnProject: EyeTest + testTalkSo: {fileID: 11400000, guid: 6d49b124127007b48b6881ce33350263, type: 2} + saveFileName: --- !u!4 &719228339 Transform: m_ObjectHideFlags: 0 @@ -8354,30 +8018,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -8594,6 +8234,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -9113,155 +8777,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &791733123 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 791733124} - - component: {fileID: 791733128} - - component: {fileID: 791733127} - - component: {fileID: 791733126} - - component: {fileID: 791733125} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &791733124 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 791733123} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 996104070} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 144, y: 12} - m_SizeDelta: {x: 150, y: 150} - m_Pivot: {x: 1, y: 1} ---- !u!114 &791733125 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 791733123} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ee158225ee1e59f4791627785501d950, type: 3} - m_Name: - m_EditorClassIdentifier: - shaderTypes: 0 - normalStrength: 5 - normalSmoothing: 1 - computingNormal: 0 ---- !u!114 &791733126 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 791733123} - 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: 791733127} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 886733273} - m_TargetAssemblyTypeName: BookManager, Assembly-CSharp - m_MethodName: CloseBook - 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 &791733127 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 791733123} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 1151292738} - 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: f1412f68a2eaf3f46b22686332552ed2, 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 &791733128 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 791733123} - m_CullTransparentMesh: 1 --- !u!1001 &798685753 PrefabInstance: m_ObjectHideFlags: 0 @@ -9270,30 +8785,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -9514,6 +9005,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -10075,30 +9590,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -10319,6 +9810,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -10496,53 +10011,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 855263533} m_CullTransparentMesh: 1 ---- !u!1 &886733270 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 886733272} - - component: {fileID: 886733273} - m_Layer: 0 - m_Name: BookManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &886733272 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886733270} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -747.66504, y: -442.781, z: 11.91071} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1009826577} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &886733273 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886733270} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 400c1e67877b4014fa862547c432b0b8, type: 3} - m_Name: - m_EditorClassIdentifier: - book: {fileID: 996104069} - CloseBookButton: {fileID: 791733126} - OepnBookButton: {fileID: 1210536474} --- !u!1 &892571111 GameObject: m_ObjectHideFlags: 0 @@ -10606,187 +10074,6 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!1001 &903312138 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1390073344} - m_Modifications: - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_text - value: "\u8FDB\u7A0B\u68C0\u6D4B" - objectReference: {fileID: 0} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_isOrthographic - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: -9206511488342544098, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_hasFontAssetChanged - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 42809014796558882, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Color.a - value: 0.7529412 - objectReference: {fileID: 0} - - target: {fileID: 42809014796558882, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Color.b - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 42809014796558882, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Color.g - value: 0.6612276 - objectReference: {fileID: 0} - - target: {fileID: 42809014796558882, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Color.r - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_text - value: "\u672A\u77E5\u8FDB\u7A0B\u8BF7\u6C42\u8BB0\u5F55\uFF0C\u6B63\u5728\u4ECE\u8BB0\u5FC6\u975E\u6CD5\u5199\u5165\uFF0C\u6253\u5370\u8BB0\u5FC6\u7D22\u5F15\u5361\u4E2D..." - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_isOrthographic - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 450652695604557379, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_hasFontAssetChanged - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2971839373268861373, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Name - value: ClueNotification (1) - objectReference: {fileID: 0} - - target: {fileID: 2971839373268861373, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_SizeDelta.x - value: 800 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_SizeDelta.y - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} ---- !u!224 &903312139 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 8061307773979316499, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - m_PrefabInstance: {fileID: 903312138} - m_PrefabAsset: {fileID: 0} ---- !u!114 &903312140 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: -6754007613140460815, guid: faa2f8d357d30504aa50ca9fa23830e3, type: 3} - m_PrefabInstance: {fileID: 903312138} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f82cb58d45475834ba39349f9b9b81e1, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &903780131 GameObject: m_ObjectHideFlags: 0 @@ -11192,221 +10479,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 429e0ca7a1096a1478e50195b88539b8, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &996104068 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1654679524} - m_Modifications: - - target: {fileID: 180032, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_Name - value: Book - objectReference: {fileID: 0} - - target: {fileID: 180032, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11403584, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 9392513c59cb1ca47baf6defed520dcd, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: canvas - value: - objectReference: {fileID: 1654679523} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: background - value: - objectReference: {fileID: 21300000, guid: b38f1555bc2bc5246a7c1a87e231e51c, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: interactable - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: enableShadowEffect - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.size - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[0] - value: - objectReference: {fileID: 21300000, guid: f6bbf427ccd3e1149a3412bc5b255a60, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[1] - value: - objectReference: {fileID: 21300000, guid: 519ce445dea91124b985267fc8452da9, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[2] - value: - objectReference: {fileID: 21300000, guid: b7fec590533c98e4b848db456cc28b21, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[3] - value: - objectReference: {fileID: 21300000, guid: dcafc5a1d5916be43832e5306edabd1f, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[4] - value: - objectReference: {fileID: 21300000, guid: f970a51dcf2964c46ad62d0be4d0fbfc, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[5] - value: - objectReference: {fileID: 21300000, guid: ea723990a8c52c7419743a8a8addaac7, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[6] - value: - objectReference: {fileID: 21300000, guid: 356f63a75863d9e41aabb597b22ca8b1, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[7] - value: - objectReference: {fileID: 21300000, guid: c0ae2fe0bfd41b444baf2d7912cf8499, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[8] - value: - objectReference: {fileID: 21300000, guid: d2248944e9db9aa428057870e1a081a1, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[9] - value: - objectReference: {fileID: 21300000, guid: 65238547f9c448945bff8fdb92bca914, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[10] - value: - objectReference: {fileID: 21300000, guid: 874507461a61752499b17767e72316c6, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[11] - value: - objectReference: {fileID: 21300000, guid: 1d312fe09f9273f4e903b35b453bc616, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[12] - value: - objectReference: {fileID: 21300000, guid: 7b237029b43e77a479fba20d6f01b45c, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[13] - value: - objectReference: {fileID: 21300000, guid: 5eb236dd6d1be374d8d666cd0d3b34bb, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[14] - value: - objectReference: {fileID: 21300000, guid: d91fa24592a8e7748bc197c3cf724359, type: 3} - - target: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: bookPages.Array.data[15] - value: - objectReference: {fileID: 21300000, guid: c695396d62a18b14e9b7a661a3fe338f, type: 3} - - target: {fileID: 11430880, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: b38f1555bc2bc5246a7c1a87e231e51c, type: 3} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_SizeDelta.x - value: 1116 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_SizeDelta.y - value: 861 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - insertIndex: -1 - addedObject: {fileID: 791733124} - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 180032, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - insertIndex: -1 - addedObject: {fileID: 2066471073} - m_SourcePrefab: {fileID: 100100000, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} ---- !u!114 &996104069 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 11415212, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - m_PrefabInstance: {fileID: 996104068} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066471071} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4446b7192d8bf914ebaf797b64fe8b86, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &996104070 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 22443772, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - m_PrefabInstance: {fileID: 996104068} - m_PrefabAsset: {fileID: 0} --- !u!1 &1009826576 GameObject: m_ObjectHideFlags: 0 @@ -11438,7 +10510,6 @@ Transform: m_Children: - {fileID: 72512886} - {fileID: 719228339} - - {fileID: 886733272} - {fileID: 40915750} - {fileID: 442870838} - {fileID: 2000641911} @@ -11918,7 +10989,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 097b95c9f69f04f2d8c08a817e7786af, type: 3} m_Name: m_EditorClassIdentifier: - dialogueView: {fileID: 1584263515} + dialogueView: {fileID: 0} continueActionType: 1 continueActionKeyCode: 32 continueActionButtonName: Jump @@ -11935,7 +11006,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 097b95c9f69f04f2d8c08a817e7786af, type: 3} m_Name: m_EditorClassIdentifier: - dialogueView: {fileID: 1584263515} + dialogueView: {fileID: 0} continueActionType: 1 continueActionKeyCode: 323 continueActionButtonName: Jump @@ -12074,250 +11145,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1115376054} m_CullTransparentMesh: 1 ---- !u!21 &1151292738 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: AllIn1SpriteShader/AllIn1SpriteShader - m_Shader: {fileID: 4800000, guid: a36b7719ff0465b42ab1407d67672c5f, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - NEGATIVE_ON - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _ColorRampTex: - m_Texture: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorRampTexGradient: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ColorSwapTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeBurnTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _FadeTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _GlowTex: - 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} - - _OutlineDistortTex: - m_Texture: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OutlineTex: - m_Texture: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OverlayTex: - m_Texture: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ShineMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _Alpha: 1 - - _AlphaCutoffValue: 0.25 - - _AlphaOutlineBlend: 1 - - _AlphaOutlineGlow: 5 - - _AlphaOutlineMinAlpha: 0 - - _AlphaOutlinePower: 1 - - _AlphaRoundThreshold: 0.5 - - _BillboardY: 0 - - _BlurHD: 0 - - _BlurIntensity: 10 - - _Brightness: 0 - - _ChromAberrAlpha: 0.4 - - _ChromAberrAmount: 1 - - _ClipUvDown: 0 - - _ClipUvLeft: 0 - - _ClipUvRight: 0 - - _ClipUvUp: 0 - - _ColorChangeLuminosity: 0 - - _ColorChangeTolerance: 0 - - _ColorChangeTolerance2: 0.25 - - _ColorChangeTolerance3: 0.25 - - _ColorRampBlend: 1 - - _ColorRampLuminosity: 0 - - _ColorRampOutline: 0 - - _ColorSwapBlend: 1 - - _ColorSwapBlueLuminosity: 0.5 - - _ColorSwapGreenLuminosity: 0.5 - - _ColorSwapRedLuminosity: 0.5 - - _Contrast: 1 - - _CullingOption: 0 - - _DistortAmount: 0.5 - - _DistortTexXSpeed: 5 - - _DistortTexYSpeed: 5 - - _EditorDrawers: 6 - - _FadeAmount: -0.1 - - _FadeBurnGlow: 2 - - _FadeBurnTransition: 0.075 - - _FadeBurnWidth: 0.025 - - _FishEyeUvAmount: 0.35 - - _FlickerAlpha: 0 - - _FlickerFreq: 0.2 - - _FlickerPercent: 0.05 - - _GhostBlend: 1 - - _GhostColorBoost: 1 - - _GhostTransparency: 0 - - _GlitchAmount: 3 - - _GlitchSize: 1 - - _Glow: 10 - - _GlowGlobal: 1 - - _GradBlend: 1 - - _GradBoostX: 1.2 - - _GradBoostY: 1.2 - - _GradIsRadial: 0 - - _GrassManualAnim: 1 - - _GrassManualToggle: 0 - - _GrassRadialBend: 0.1 - - _GrassSpeed: 2 - - _GrassWind: 20 - - _GreyscaleBlend: 1 - - _GreyscaleLuminosity: 0 - - _GreyscaleOutline: 0 - - _HandDrawnAmount: 10 - - _HandDrawnSpeed: 5 - - _HitEffectBlend: 1 - - _HitEffectGlow: 5 - - _HologramBlend: 1 - - _HologramMaxAlpha: 0.75 - - _HologramMinAlpha: 0.1 - - _HologramStripesAmount: 0.1 - - _HologramStripesSpeed: 4.5 - - _HologramUnmodAmount: 0 - - _HsvBright: 1 - - _HsvSaturation: 1 - - _HsvShift: 180 - - _InnerOutlineAlpha: 1 - - _InnerOutlineGlow: 4 - - _InnerOutlineThickness: 1 - - _MaxXUV: 1 - - _MaxYUV: 1 - - _MinXUV: 0 - - _MinYUV: 0 - - _MotionBlurAngle: 0.1 - - _MotionBlurDist: 1.25 - - _MyDstMode: 10 - - _MySrcMode: 5 - - _NegativeAmount: 1 - - _OffsetUvX: 0 - - _OffsetUvY: 0 - - _OnlyInnerOutline: 0 - - _OnlyOutline: 0 - - _OutlineAlpha: 1 - - _OutlineDistortAmount: 0.5 - - _OutlineDistortTexXSpeed: 5 - - _OutlineDistortTexYSpeed: 5 - - _OutlineGlow: 1.5 - - _OutlinePixelWidth: 1 - - _OutlineTexXSpeed: 10 - - _OutlineTexYSpeed: 0 - - _OutlineWidth: 0.004 - - _OverlayBlend: 1 - - _OverlayGlow: 1 - - _OverlayTextureScrollXSpeed: 0.25 - - _OverlayTextureScrollYSpeed: 0.25 - - _PinchUvAmount: 0.35 - - _PixelateSize: 32 - - _PosterizeGamma: 0.75 - - _PosterizeNumColors: 8 - - _PosterizeOutline: 0 - - _RadialClip: 45 - - _RadialClip2: 0 - - _RadialStartAngle: 90 - - _RandomSeed: 0 - - _RectSize: 1 - - _RotateUvAmount: 0 - - _RoundWaveSpeed: 2 - - _RoundWaveStrength: 0.7 - - _ShadowAlpha: 0.5 - - _ShadowX: 0.1 - - _ShadowY: -0.05 - - _ShakeUvSpeed: 2.5 - - _ShakeUvX: 1.5 - - _ShakeUvY: 1 - - _ShineGlow: 1 - - _ShineLocation: 0.5 - - _ShineRotate: 0 - - _ShineWidth: 0.1 - - _TextureScrollXSpeed: 1 - - _TextureScrollYSpeed: 0 - - _TwistUvAmount: 1 - - _TwistUvPosX: 0.5 - - _TwistUvPosY: 0.5 - - _TwistUvRadius: 0.75 - - _WarpScale: 0.5 - - _WarpSpeed: 8 - - _WarpStrength: 0.025 - - _WaveAmount: 7 - - _WaveSpeed: 10 - - _WaveStrength: 7.5 - - _WaveX: 0 - - _WaveY: 0.5 - - _ZTestMode: 4 - - _ZWrite: 0 - - _ZoomUvAmount: 0.5 - m_Colors: - - _AlphaOutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _ColorChangeNewCol: {r: 1, g: 1, b: 1, a: 1} - - _ColorChangeNewCol2: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeNewCol3: {r: 1, g: 1, b: 0, a: 1} - - _ColorChangeTarget: {r: 0, g: 0, b: 0, a: 1} - - _ColorChangeTarget2: {r: 1, g: 0, b: 0, a: 1} - - _ColorChangeTarget3: {r: 1, g: 0, b: 0, a: 1} - - _ColorSwapBlue: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapGreen: {r: 1, g: 1, b: 1, a: 1} - - _ColorSwapRed: {r: 1, g: 1, b: 1, a: 1} - - _FadeBurnColor: {r: 1, g: 1, b: 0, a: 1} - - _GlowColor: {r: 1, g: 1, b: 1, a: 1} - - _GradBotLeftCol: {r: 0, g: 0, b: 1, a: 1} - - _GradBotRightCol: {r: 0, g: 1, b: 0, a: 1} - - _GradTopLeftCol: {r: 1, g: 0, b: 0, a: 1} - - _GradTopRightCol: {r: 1, g: 1, b: 0, a: 1} - - _GreyscaleTintColor: {r: 1, g: 1, b: 1, a: 1} - - _HitEffectColor: {r: 1, g: 1, b: 1, a: 1} - - _HologramStripeColor: {r: 0, g: 1, b: 1, a: 1} - - _InnerOutlineColor: {r: 1, g: 0, b: 0, a: 1} - - _OutlineColor: {r: 1, g: 1, b: 1, a: 1} - - _OverlayColor: {r: 1, g: 1, b: 1, a: 1} - - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - - _ShineColor: {r: 1, g: 1, b: 1, a: 1} - m_BuildTextureStacks: [] --- !u!1 &1153212192 GameObject: m_ObjectHideFlags: 0 @@ -12393,108 +11220,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1153212192} m_CullTransparentMesh: 1 ---- !u!1 &1200911920 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1200911924} - - component: {fileID: 1200911923} - - component: {fileID: 1200911922} - - component: {fileID: 1200911921} - m_Layer: 5 - m_Name: ClueBoardCanvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1200911921 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200911920} - 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 &1200911922 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200911920} - 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 &1200911923 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200911920} - 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_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 6 - m_TargetDisplay: 0 ---- !u!224 &1200911924 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200911920} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1390073344} - m_Father: {fileID: 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 &1209741188 GameObject: m_ObjectHideFlags: 0 @@ -12967,30 +11692,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -13211,6 +11912,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -13335,6 +12060,58 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: + - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_AnchoredPosition.y + value: 25.629997 + objectReference: {fileID: 0} + - target: {fileID: 442829669951131826, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: _sID + value: 6f5c7914-f97e-4f47-806a-9794e5f5f769 + objectReference: {fileID: 0} + - target: {fileID: 442829669951131826, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315362672514892} + - target: {fileID: 720753418213842348, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: _sID + value: e2613f65-319b-4f62-ba39-a479e7b46ba2 + objectReference: {fileID: 0} + - target: {fileID: 720753418213842348, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315362672514892} + - target: {fileID: 2651560808168083272, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_text + value: "\u4EC0\u4E48\u5BFC\u81F4\u4E86\u8BB0\u5FC6\u7684Glitch\uFF1F" + objectReference: {fileID: 0} + - target: {fileID: 4396600131353777755, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_AnchoredPosition.x + value: -334 + objectReference: {fileID: 0} + - target: {fileID: 7368283137120249392, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: _sID + value: ac121996-37d7-4305-8828-b90a712ad53e + objectReference: {fileID: 0} + - target: {fileID: 7368283137120249392, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315362672514892} + - target: {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} propertyPath: _sID value: d894ac63-2f28-4ec9-8b52-d0068c6dda3b @@ -13535,58 +12312,6 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} - - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 301155002500816269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_AnchoredPosition.y - value: 25.629997 - objectReference: {fileID: 0} - - target: {fileID: 442829669951131826, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: _sID - value: 6f5c7914-f97e-4f47-806a-9794e5f5f769 - objectReference: {fileID: 0} - - target: {fileID: 442829669951131826, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315362672514892} - - target: {fileID: 720753418213842348, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: _sID - value: e2613f65-319b-4f62-ba39-a479e7b46ba2 - objectReference: {fileID: 0} - - target: {fileID: 720753418213842348, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315362672514892} - - target: {fileID: 2651560808168083272, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_text - value: "\u4EC0\u4E48\u5BFC\u81F4\u4E86\u8BB0\u5FC6\u7684Glitch\uFF1F" - objectReference: {fileID: 0} - - target: {fileID: 4396600131353777755, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_AnchoredPosition.x - value: -334 - objectReference: {fileID: 0} - - target: {fileID: 7368283137120249392, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: _sID - value: ac121996-37d7-4305-8828-b90a712ad53e - objectReference: {fileID: 0} - - target: {fileID: 7368283137120249392, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315362672514892} - - target: {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -13896,30 +12621,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -14140,6 +12841,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -14226,11 +12951,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!224 &1390073344 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - m_PrefabInstance: {fileID: 1900889179} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1392825346 PrefabInstance: m_ObjectHideFlags: 0 @@ -14239,30 +12959,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -14483,6 +13179,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -14632,30 +13352,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -14860,6 +13556,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -15401,30 +14121,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -15645,6 +14341,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -15890,30 +14610,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -16134,6 +14830,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -16967,108 +15687,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1645213664} m_CullTransparentMesh: 1 ---- !u!1 &1654679520 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1654679524} - - component: {fileID: 1654679523} - - component: {fileID: 1654679522} - - component: {fileID: 1654679521} - m_Layer: 5 - m_Name: BookCanvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!114 &1654679521 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1654679520} - 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 &1654679522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1654679520} - 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 &1654679523 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1654679520} - 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_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 6 - m_TargetDisplay: 0 ---- !u!224 &1654679524 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1654679520} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 996104070} - m_Father: {fileID: 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 &1655147930 GameObject: m_ObjectHideFlags: 0 @@ -17949,140 +16567,6 @@ MonoBehaviour: normalStrength: 5 normalSmoothing: 1 computingNormal: 0 ---- !u!1 &1773604968 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1773604969} - - component: {fileID: 1773604971} - - component: {fileID: 1773604970} - 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 &1773604969 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773604968} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 578124939} - 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 &1773604970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773604968} - 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: "\u8BCA\u7597\u5355" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} - m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, 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: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - 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: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - 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 &1773604971 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773604968} - m_CullTransparentMesh: 1 --- !u!1 &1774093878 GameObject: m_ObjectHideFlags: 0 @@ -18894,147 +17378,6 @@ GameObject: m_CorrespondingSourceObject: {fileID: 7768698746163907630, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} m_PrefabInstance: {fileID: 798685753} m_PrefabAsset: {fileID: 0} ---- !u!114 &1884409621 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1304390830998249357, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - m_PrefabInstance: {fileID: 1900889179} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e0093028f75bca0408902ce738d4d267, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1001 &1900889179 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1200911924} - m_Modifications: - - target: {fileID: 317512342430690493, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1304390830998249357, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: clueBoardUI - value: - objectReference: {fileID: 6437954650411144377} - - target: {fileID: 1304390830998249357, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: iamgePointer - value: - objectReference: {fileID: 4922845679809519631} - - target: {fileID: 1304390830998249357, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: toggleButton - value: - objectReference: {fileID: 578124940} - - target: {fileID: 1845701308780261434, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4855407103418339723, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_Name - value: ClueBoard - objectReference: {fileID: 0} - - target: {fileID: 4855407103418339723, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - insertIndex: -1 - addedObject: {fileID: 578124939} - - targetCorrespondingSourceObject: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - insertIndex: -1 - addedObject: {fileID: 903312139} - - targetCorrespondingSourceObject: {fileID: 2733589247042663915, guid: 68892fec64b888548bb2dc685526cf91, type: 3} - insertIndex: -1 - addedObject: {fileID: 1759113} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 68892fec64b888548bb2dc685526cf91, type: 3} --- !u!1 &1904990749 GameObject: m_ObjectHideFlags: 0 @@ -19294,8 +17637,8 @@ MonoBehaviour: yarnProject: {fileID: 0} _variableStorage: {fileID: 667130563} dialogueViews: - - {fileID: 1584263515} - - {fileID: 494300780} + - {fileID: 0} + - {fileID: 0} startNode: Start startAutomatically: 0 runSelectedOptionAsLine: 0 @@ -19773,30 +18116,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -20017,6 +18336,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -20162,7 +18505,7 @@ MonoBehaviour: dialogueCanvas: {fileID: 1604842428} cursorImage: {fileID: 1756648053} ButtonDisableWhenIsTalking: - - {fileID: 578124940} + - {fileID: 0} - {fileID: 58199302} --- !u!1001 &2001435037 PrefabInstance: @@ -20172,30 +18515,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -20416,6 +18735,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: @@ -20695,30 +19038,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 243936684424215245} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -20939,6 +19258,30 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 3728315363019128986, guid: c998a63bd211990449fe9bb1f2832e3d, type: 3} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7940112695066571942, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -21184,28 +19527,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2065230354} m_CullTransparentMesh: 1 ---- !u!1 &2066471071 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 180032, guid: fe9bfb5044c0cc646baba1ad7d354100, type: 3} - m_PrefabInstance: {fileID: 996104068} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2066471073 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066471071} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bef881b4c6ed71248b493dcd92c831a5, type: 3} - m_Name: - m_EditorClassIdentifier: - Mode: 0 - TimeBetweenPages: 1 - DelayBeforeStarting: 0 - AutoStartFlip: 1 - ControledBook: {fileID: 996104069} --- !u!1 &2080447695 GameObject: m_ObjectHideFlags: 0 @@ -35317,7 +33638,7 @@ MonoBehaviour: iconOnDrag: {fileID: 8895775685280376203, guid: eb11ac9a06fb4792b393db9b83ab43b4, type: 3} exclusiveOnDragCanvas: {fileID: 0} useLegacyDragMethod: 0 - position: {x: 2769.75, y: 408, z: 0} + position: {x: 0, y: 0, z: 0} dragSelection: customRenderer: {fileID: 0} line: @@ -57003,9 +55324,7 @@ SceneRoots: - {fileID: 1343879457} - {fileID: 1009826577} - {fileID: 1655147933} - - {fileID: 1654679524} - {fileID: 1559877096371354170} - - {fileID: 1200911924} - {fileID: 2302717115629548829} - {fileID: 2003858546407399498} - {fileID: 1620453322} diff --git a/Assets/Scripts/Dialog System/DialogController.cs b/Assets/Scripts/Dialog System/DialogController.cs index b1980cb03..474f0ea1c 100644 --- a/Assets/Scripts/Dialog System/DialogController.cs +++ b/Assets/Scripts/Dialog System/DialogController.cs @@ -5,7 +5,6 @@ using AibisDream.Kit; using UnityEngine; using UnityEngine.Events; using Yarn.Unity; -using DG.Tweening; namespace AibisDream { @@ -69,14 +68,6 @@ namespace AibisDream OnDialogueComplete?.Invoke(); IsTalking = false; }); - //dialogueRunner.AddCommandListener(_ => { IsTalking = false; }); - - // 对话结束时切下一个SO - dialogueRunner.onDialogueComplete.AddListener(() => - { - // DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.Bubble); - // StartCoroutine(GameLoopManager.Instance.NextSceneSo()); - }); } #region 变量操作 @@ -278,12 +269,6 @@ namespace AibisDream MainUIController.Instance.SwitchTV(picName); } - [YarnCommand("indoor")] - public static void Indoor(float duration = 1) - { - MainUIController.Instance.TVFadeOut(duration); - } - [YarnCommand("show_tv_scene")] public static void ShowTVScene(float duration) { @@ -340,35 +325,6 @@ namespace AibisDream return MainUIController.Instance.HideObj(); } - [YarnCommand("move_to_fix")] - public static IEnumerator MoveToFix() - { - bool isCompleted = false; - Sequence s = DOTween.Sequence(); - s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(6.8f, 0, -10), 2f)) - .OnComplete(() => - { - // 动画完成后的反馈操作 - Debug.Log("Move_to_fix sequence completed."); - isCompleted = true; - }); - - // 等待动画完成 - yield return new WaitUntil(() => isCompleted); - - // 动画完成后的其他操作 - Debug.Log("Continuing after Move_to_fix sequence."); - } - - [YarnCommand("move_out_fix")] - public static void MoveOutFix() - { - Camera.main.transform.position = new UnityEngine.Vector3(6.8f, 0, -10); - Sequence s = DOTween.Sequence(); - //s.AppendInterval(0.5f); - s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(0, 0, -10), 2f)); - } - [YarnCommand("switch_dialog_view")] public static void SwitchDialogView(string viewName) { diff --git a/Assets/Scripts/FixSystem/Book/BookManager.cs b/Assets/Scripts/FixSystem/Book/BookManager.cs deleted file mode 100644 index 89fe564b3..000000000 --- a/Assets/Scripts/FixSystem/Book/BookManager.cs +++ /dev/null @@ -1,143 +0,0 @@ -using UnityEngine; -using Yarn.Unity; -using System; -using System.Collections; -using AibisDream; -using System.Linq; -using UnityEngine.UI; -using DG.Tweening; - -public class BookManager : MonoBehaviour -{ - public Book book; // Reference to the book script - private AutoFlip flipmanager; - - public Button CloseBookButton; - - public Button OepnBookButton; - - private RectTransform bookPos; - - public event Action OnBookClosed; - - public event Action OnBookOpen; - - void Start() - { - CloseBookButton.onClick.RemoveAllListeners(); // 确保不会重复绑定 - CloseBookButton.onClick.AddListener(() => - { - // 仅关闭书本,不执行额外操作 - CloseBook(); - }); - - OepnBookButton.onClick.RemoveAllListeners(); // 确保不会重复绑定 - OepnBookButton.onClick.AddListener(() => - { - // 打开书本 - ButtonOpenBook(); - }); - - DialogController.Instance.RegisterOptionCommand("listen_closeBook", CombineCloseBook); - flipmanager = book.gameObject.GetComponent(); - bookPos = book.gameObject.GetComponent(); - // Initially, the book is closed - if(book.gameObject.activeInHierarchy) - { - CloseBook(); - } - - } - // Open the book and flip to a specific page - - public void CombineCloseBook(YarnOption[] options) - { - var optionDic = options.ToDictionary(item => item.Text, item => item); - Debug.Log("Option dictionary keys: " + string.Join(", ", optionDic.Keys)); - - if (optionDic.ContainsKey("CloseBook")) - { - // 监听书关闭事件 - OnBookClosed -= TriggerCloseBookOption; // 避免重复监听 - OnBookClosed += TriggerCloseBookOption; - - // 内部方法:当书关闭时触发该选项的逻辑 - void TriggerCloseBookOption() - { - optionDic["CloseBook"].SelectOption(); - } - } - } - - public void ButtonOpenBook() - { - StartCoroutine(OpenBook()); - } - - [YarnCommand("OpenBook")] - public IEnumerator OpenBook() - { - if(book.gameObject.activeInHierarchy) - { - yield break; - } - AudioManager.RandomPlayInteraction("book"); - OnBookOpen?.Invoke(); - // 如果书还没有激活,先激活它 - if (!book.gameObject.activeInHierarchy) - { - book.gameObject.SetActive(true); - } - - // 使用 DoTween 创建一个动画序列 - Sequence sequence = DOTween.Sequence(); - - // 设置初始位置为屏幕外或者其他你想要的位置(根据需求自行设置) - bookPos.anchoredPosition = - new Vector2(bookPos.anchoredPosition.x, -(Screen.height + bookPos.sizeDelta.y) / 2); - - // 移动到目标位置 - sequence.Append(bookPos.DOAnchorPos(Vector2.zero, 0.5f).SetEase(Ease.OutQuad)); - - // 等待序列完成 - yield return sequence.WaitForCompletion(); - } - - [YarnCommand("Flip")] - public IEnumerator FlipToPageYarnCommand(int parameters) - { - // Parse the target page from the parameters - int targetPage = parameters; - book.interactable=false; - // Start the FlipToPageCoroutine and wait for it to finish - yield return StartCoroutine(flipmanager.FlipToPageCoroutine(targetPage)); - book.interactable=true; - } - - // Close the book - public void CloseBook(Action onCloseCallback = null) - { - AudioManager.RandomPlayInteraction("book"); - StartCoroutine(CloseBookCoroutine(onCloseCallback)); - } - - private IEnumerator CloseBookCoroutine(Action onCloseCallback = null) - { - // 使用 DoTween 创建一个动画序列 - Sequence sequence = DOTween.Sequence(); - - // 动画:将 book 移动回初始位置 - sequence.Append(bookPos - .DOAnchorPos( - new Vector2(bookPos.anchoredPosition.x, -(Screen.height + bookPos.sizeDelta.y) / 2), 0.5f) - .SetEase(Ease.InQuad)); - - // 等待动画完成 - yield return sequence.WaitForCompletion(); - - // 动画完成后隐藏 book - book.gameObject.SetActive(false); - - OnBookClosed?.Invoke(); - } -} \ No newline at end of file diff --git a/Assets/Scripts/FixSystem/Book/BookManager.cs.meta b/Assets/Scripts/FixSystem/Book/BookManager.cs.meta deleted file mode 100644 index bd0501010..000000000 --- a/Assets/Scripts/FixSystem/Book/BookManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 400c1e67877b4014fa862547c432b0b8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/FixSystem/Book/FlipManager.cs b/Assets/Scripts/FixSystem/Book/FlipManager.cs deleted file mode 100644 index bb3d7812c..000000000 --- a/Assets/Scripts/FixSystem/Book/FlipManager.cs +++ /dev/null @@ -1,172 +0,0 @@ -using UnityEngine; -using System.Collections; - -[RequireComponent(typeof(Book))] -public class FlipManager : MonoBehaviour -{ - public FlipMode Mode; - public float PageFlipTime = 1; - public float TimeBetweenPages = 1; - public float DelayBeforeStarting = 0; - public bool AutoStartFlip = true; - public Book ControledBook; - public int AnimationFramesCount = 40; - bool isFlipping = false; - - public bool IsFlipping - { - get { return isFlipping; } - } - // Use this for initialization - void Start() - { - if (!ControledBook) - ControledBook = GetComponent(); - if (AutoStartFlip) - //StartFlipping(); - FlipToPage(6); - ControledBook.OnFlip.AddListener(new UnityEngine.Events.UnityAction(PageFlipped)); - } - void PageFlipped() - { - isFlipping = false; - } - public void StartFlipping() - { - StartCoroutine(FlipToEnd()); - } - public void FlipRightPage() - { - if (isFlipping) return; - if (ControledBook.currentPage >= ControledBook.TotalPageCount) return; - isFlipping = true; - float frameTime = PageFlipTime / AnimationFramesCount; - float xc = (ControledBook.EndBottomRight.x + ControledBook.EndBottomLeft.x) / 2; - float xl = ((ControledBook.EndBottomRight.x - ControledBook.EndBottomLeft.x) / 2) * 0.9f; - //float h = ControledBook.Height * 0.5f; - float h = Mathf.Abs(ControledBook.EndBottomRight.y) * 0.9f; - float dx = (xl) * 2 / AnimationFramesCount; - StartCoroutine(FlipRTL(xc, xl, h, frameTime, dx)); - } - public void FlipLeftPage() - { - if (isFlipping) return; - if (ControledBook.currentPage <= 0) return; - isFlipping = true; - float frameTime = PageFlipTime / AnimationFramesCount; - float xc = (ControledBook.EndBottomRight.x + ControledBook.EndBottomLeft.x) / 2; - float xl = ((ControledBook.EndBottomRight.x - ControledBook.EndBottomLeft.x) / 2) * 0.9f; - //float h = ControledBook.Height * 0.5f; - float h = Mathf.Abs(ControledBook.EndBottomRight.y) * 0.9f; - float dx = (xl) * 2 / AnimationFramesCount; - StartCoroutine(FlipLTR(xc, xl, h, frameTime, dx)); - } - IEnumerator FlipToEnd() - { - yield return new WaitForSeconds(DelayBeforeStarting); - float frameTime = PageFlipTime / AnimationFramesCount; - float xc = (ControledBook.EndBottomRight.x + ControledBook.EndBottomLeft.x) / 2; - float xl = ((ControledBook.EndBottomRight.x - ControledBook.EndBottomLeft.x) / 2) * 0.9f; - //float h = ControledBook.Height * 0.5f; - float h = Mathf.Abs(ControledBook.EndBottomRight.y) * 0.9f; - //y=-(h/(xl)^2)*(x-xc)^2 - // y - // | - // | - // | - //_______________|_________________x - // o|o | - // o | o | - // o | o | h - // o | o | - // o------xc-------o - - // |<--xl--> - // | - // | - float dx = (xl) * 2 / AnimationFramesCount; - switch (Mode) - { - case FlipMode.RightToLeft: - while (ControledBook.currentPage < ControledBook.TotalPageCount) - { - StartCoroutine(FlipRTL(xc, xl, h, frameTime, dx)); - yield return new WaitForSeconds(TimeBetweenPages); - } - break; - case FlipMode.LeftToRight: - while (ControledBook.currentPage > 0) - { - StartCoroutine(FlipLTR(xc, xl, h, frameTime, dx)); - yield return new WaitForSeconds(TimeBetweenPages); - } - break; - } - } - IEnumerator FlipRTL(float xc, float xl, float h, float frameTime, float dx) - { - float x = xc + xl; - float y = (-h / (xl * xl)) * (x - xc) * (x - xc); - - ControledBook.DragRightPageToPoint(new Vector3(x, y, 0)); - for (int i = 0; i < AnimationFramesCount; i++) - { - y = (-h / (xl * xl)) * (x - xc) * (x - xc); - ControledBook.UpdateBookRTLToPoint(new Vector3(x, y, 0)); - yield return new WaitForSeconds(frameTime); - x -= dx; - } - ControledBook.ReleasePage(); - } - IEnumerator FlipLTR(float xc, float xl, float h, float frameTime, float dx) - { - float x = xc - xl; - float y = (-h / (xl * xl)) * (x - xc) * (x - xc); - ControledBook.DragLeftPageToPoint(new Vector3(x, y, 0)); - for (int i = 0; i < AnimationFramesCount; i++) - { - y = (-h / (xl * xl)) * (x - xc) * (x - xc); - ControledBook.UpdateBookLTRToPoint(new Vector3(x, y, 0)); - yield return new WaitForSeconds(frameTime); - x += dx; - } - ControledBook.ReleasePage(); - } - public void FlipToPage(int targetPage) -{ - StartCoroutine(FlipToPageCoroutine(targetPage)); -} - -public IEnumerator FlipToPageCoroutine(int targetPage) -{ - int currentPage = ControledBook.currentPage; - - if (targetPage % 2 != 0) - { - targetPage++; - } - - // Calculate the number of flips needed - int pageDifference = Mathf.Abs(targetPage - currentPage) / 2; - - // Determine the direction to flip - if (targetPage > currentPage) - { - for (int i = 0; i < pageDifference; i++) - { - FlipRightPage(); - yield return new WaitUntil(() => !isFlipping); - } - } - else if (targetPage < currentPage) - { - for (int i = 0; i < pageDifference; i++) - { - FlipLeftPage(); - yield return new WaitUntil(() => !isFlipping); - } - } -} - - - -} diff --git a/Assets/Scripts/FixSystem/Book/FlipManager.cs.meta b/Assets/Scripts/FixSystem/Book/FlipManager.cs.meta deleted file mode 100644 index 6be0d852f..000000000 --- a/Assets/Scripts/FixSystem/Book/FlipManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8bf187ebf600021479fd43ecfe56b42d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs b/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs index 093d4d884..8a8815dab 100644 --- a/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs +++ b/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs @@ -15,7 +15,9 @@ public class MouseFollowAndZoom : MonoBehaviour public float zoomDuration = 1.0f; // 缩放持续时间(减慢) public Vector2 sceneBoundsMin; // 场景边界的左下角 public Vector2 sceneBoundsMax; // 场景边界的右上角 + public Camera viewCamera; + //private Camera MainCamera; private Vector3 initialPosition; private Vector3 zoomedInPosition; // 保存缩放时的相机位置 @@ -23,11 +25,11 @@ public class MouseFollowAndZoom : MonoBehaviour private EyeSystem eyemanager; private EyeTarget currentTarget; // 当前目标 - private float viewOffset=40.3f; + private float viewOffset = 40.3f; - private bool isActive=false; + private bool isActive = false; - private bool isLocked=false; + private bool isLocked = false; // 只读访问 public bool GetMyPrivateVariable() @@ -40,6 +42,7 @@ public class MouseFollowAndZoom : MonoBehaviour { isActive = value; } + public void SetIsLock(bool value) { isLocked = value; @@ -48,10 +51,9 @@ public class MouseFollowAndZoom : MonoBehaviour void Start() { - //MainCamera = Camera.main; initialPosition = transform.position; targetIndicator.SetActive(false); // 初始时隐藏目标框 - eyemanager=FindObjectOfType(); + eyemanager = FindObjectOfType(); if (eyemanager == null) { Debug.LogError("EyeManager instance not found in the scene."); @@ -62,9 +64,9 @@ public class MouseFollowAndZoom : MonoBehaviour { if (!isActive) { - targetIndicator.SetActive(false); + targetIndicator.SetActive(false); return; - } + } HandleTargetIndicator(); // 显示指示器 if (isLocked) return; @@ -72,70 +74,72 @@ public class MouseFollowAndZoom : MonoBehaviour UpdateCurrentTarget(); // 更新当前目标 } -private Vector3 currentOffset; // 当前的偏移量 + private Vector3 currentOffset; // 当前的偏移量 -void HandleMouseMovement() -{ - // 获取鼠标位置 - Vector3 mousePosition = Input.mousePosition; - Vector3 worldMousePosition = viewCamera.ScreenToWorldPoint(mousePosition); - worldMousePosition.z = 0; // 确保 z 为 0 - - // 计算目标偏移量并反向 - Vector3 targetOffset = (viewCamera.transform.position - worldMousePosition) * parallaxEffectMultiplier; - targetOffset.x = Mathf.Clamp(targetOffset.x, -maxOffset.x, maxOffset.x); - targetOffset.y = Mathf.Clamp(targetOffset.y, -maxOffset.y, maxOffset.y); - - // 平滑处理偏移量 - float smoothFactor = 0.01f; // 平滑系数,值越小平滑效果越强,响应越慢 - currentOffset = Vector3.Lerp(currentOffset, targetOffset, smoothFactor); - - // 计算目标位置 - Vector3 targetPosition = initialPosition + currentOffset; - - // 限制目标位置在场景边界范围内 - targetPosition.x = Mathf.Clamp(targetPosition.x, sceneBoundsMin.x, sceneBoundsMax.x); - targetPosition.y = Mathf.Clamp(targetPosition.y, sceneBoundsMin.y, sceneBoundsMax.y); - - // 使用插值(Lerp)平滑更新位置 - float followSpeed = 0.1f; // 跟随速度,值越小延迟越大 - Vector3 smoothedPosition = Vector3.Lerp(transform.position, targetPosition, followSpeed); - - // 应用平滑后的位置 - transform.position = smoothedPosition; -} -void UpdateCurrentTarget() -{ - // 获取鼠标位置 - Vector3 mousePosition = Input.mousePosition; - mousePosition.x += viewOffset; // 添加偏移量 - Vector3 worldPosition = viewCamera.ScreenToWorldPoint(mousePosition); - RaycastHit2D hit = Physics2D.Raycast(worldPosition, Vector2.zero); - - // 检查是否有目标 - if (hit.collider != null && hit.collider.CompareTag("EyeTarget")) + void HandleMouseMovement() { - currentTarget = hit.collider.GetComponent(); // 更新当前目标 + // 获取鼠标位置 + Vector3 mousePosition = Input.mousePosition; + Vector3 worldMousePosition = viewCamera.ScreenToWorldPoint(mousePosition); + worldMousePosition.z = 0; // 确保 z 为 0 - // 处理鼠标点击事件 - if (Input.GetMouseButtonDown(0)) + // 计算目标偏移量并反向 + Vector3 targetOffset = (viewCamera.transform.position - worldMousePosition) * parallaxEffectMultiplier; + targetOffset.x = Mathf.Clamp(targetOffset.x, -maxOffset.x, maxOffset.x); + targetOffset.y = Mathf.Clamp(targetOffset.y, -maxOffset.y, maxOffset.y); + + // 平滑处理偏移量 + float smoothFactor = 0.01f; // 平滑系数,值越小平滑效果越强,响应越慢 + currentOffset = Vector3.Lerp(currentOffset, targetOffset, smoothFactor); + + // 计算目标位置 + Vector3 targetPosition = initialPosition + currentOffset; + + // 限制目标位置在场景边界范围内 + targetPosition.x = Mathf.Clamp(targetPosition.x, sceneBoundsMin.x, sceneBoundsMax.x); + targetPosition.y = Mathf.Clamp(targetPosition.y, sceneBoundsMin.y, sceneBoundsMax.y); + + // 使用插值(Lerp)平滑更新位置 + float followSpeed = 0.1f; // 跟随速度,值越小延迟越大 + Vector3 smoothedPosition = Vector3.Lerp(transform.position, targetPosition, followSpeed); + + // 应用平滑后的位置 + transform.position = smoothedPosition; + } + + void UpdateCurrentTarget() + { + // 获取鼠标位置 + Vector3 mousePosition = Input.mousePosition; + mousePosition.x += viewOffset; // 添加偏移量 + Vector3 worldPosition = viewCamera.ScreenToWorldPoint(mousePosition); + RaycastHit2D hit = Physics2D.Raycast(worldPosition, Vector2.zero); + + // 检查是否有目标 + if (hit.collider != null && hit.collider.CompareTag("EyeTarget")) { - Debug.Log("点击目标触发了"); - if (currentTarget != null) + currentTarget = hit.collider.GetComponent(); // 更新当前目标 + + // 处理鼠标点击事件 + if (Input.GetMouseButtonDown(0)) { - eyemanager.SetTarget(currentTarget); // 设置目标 - } - else - { - Debug.LogWarning("The collider does not have an EyeTarget component."); + Debug.Log("点击目标触发了"); + if (currentTarget != null) + { + eyemanager.SetTarget(currentTarget); // 设置目标 + } + else + { + Debug.LogWarning("The collider does not have an EyeTarget component."); + } } } + else + { + currentTarget = null; // 如果没有目标,设置为 null + } } - else - { - currentTarget = null; // 如果没有目标,设置为 null - } -} + void HandleTargetIndicator() { if (currentTarget == null) @@ -153,7 +157,8 @@ void UpdateCurrentTarget() // 转换为屏幕坐标 Vector3 screenCenter = viewCamera.WorldToScreenPoint(boxCenter); - Vector2 screenSize = viewCamera.WorldToScreenPoint(boxCenter + boxSize) - viewCamera.WorldToScreenPoint(boxCenter); + Vector2 screenSize = viewCamera.WorldToScreenPoint(boxCenter + boxSize) - + viewCamera.WorldToScreenPoint(boxCenter); // 设置目标框位置和大小 RectTransform indicatorRectTransform = targetIndicator.GetComponent(); @@ -167,10 +172,10 @@ void UpdateCurrentTarget() targetIndicator.SetActive(true); } } + public void SetIndicatorTarget(EyeTarget target) { - currentTarget=target; - + currentTarget = target; } @@ -187,7 +192,7 @@ void UpdateCurrentTarget() // { // Debug.Log(hit.collider.gameObject.name); // } - + // if (hit.collider != null && hit.collider.CompareTag("EyeTarget")) // 检查是否是目标 Sprite // { @@ -253,11 +258,11 @@ void UpdateCurrentTarget() // 绘制场景边界 Vector3 bottomLeft = new Vector3(sceneBoundsMin.x, sceneBoundsMin.y, 0); Vector3 topRight = new Vector3(sceneBoundsMax.x, sceneBoundsMax.y, 0); - + // 绘制边界框 Gizmos.DrawLine(bottomLeft, new Vector3(bottomLeft.x, topRight.y, 0)); Gizmos.DrawLine(bottomLeft, new Vector3(topRight.x, bottomLeft.y, 0)); Gizmos.DrawLine(topRight, new Vector3(bottomLeft.x, topRight.y, 0)); Gizmos.DrawLine(topRight, new Vector3(topRight.x, bottomLeft.y, 0)); } -} +} \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/BodyModule/BodyModule.cs b/Assets/Scripts/FixSystemNew/BodyModule/BodyModule.cs index 3770d861c..f03136b02 100644 --- a/Assets/Scripts/FixSystemNew/BodyModule/BodyModule.cs +++ b/Assets/Scripts/FixSystemNew/BodyModule/BodyModule.cs @@ -11,15 +11,17 @@ namespace AibisDream.FixSystem private const string SocketObjName = "Socket"; private const string ModulePicName = "Module Pic"; + public Transform socketPos; + // public Transform _indicatorPos; private BodyModuleSystem _bodyModuleSystem; private Material _highlightMaterial; private Material _alarmMaterial; - private Material _originalMaterial; // 原材质 + private Material _originalMaterial; // 原材质 private SpriteRenderer _targetSpriteRenderer; // 目标的 SpriteRenderer - + #endregion // 模块基本数据 @@ -31,38 +33,42 @@ namespace AibisDream.FixSystem // 获取组件索引 InitReference(); } + private void InitReference() { socketPos = transform.Find(SocketObjName); _bodyModuleSystem = transform.parent.parent.GetComponent(); - - _targetSpriteRenderer=transform.Find("Module Pic").GetComponent(); + + _targetSpriteRenderer = transform.Find("Module Pic").GetComponent(); _originalMaterial = _targetSpriteRenderer.GetComponent().material; _highlightMaterial = Resources.Load("Materials/HighlightMaterial"); - _alarmMaterial=Resources.Load("Materials/AlarmMaterial"); + _alarmMaterial = Resources.Load("Materials/AlarmMaterial"); } #region 插槽功能 + public bool IsAvailable() { return _available; } + public void SetSocketAvailable(bool isAvailable) { - _available=isAvailable; + _available = isAvailable; } + public void PlugIn() { - if(DialogController.Instance!=null) - // 然后触发Yarn节点 - DialogController.Instance.StartDialogNode(_bodyModuleSystem.inHotErr ? "系统过热" : data.PlugInNodeName); + if (DialogController.Instance != null) + // 然后触发Yarn节点 + DialogController.Instance.StartDialogNode(_bodyModuleSystem.inHotErr ? "系统过热" : data.PlugInNodeName); } public void PlugOut() { _bodyModuleSystem.oscilloscopeSystem.MessageBoxSetNull(); StartCoroutine(_bodyModuleSystem.oscilloscopeSystem.DisableDeepInButton()); - + // TODO 触发Yarn节点(似乎目前没有拔出对话?) } @@ -87,7 +93,7 @@ namespace AibisDream.FixSystem newSocketPos.localPosition = newData.SocketPos; // 数据同步 data = newData; - + InitReference(); } @@ -102,20 +108,23 @@ namespace AibisDream.FixSystem ModulePic = modulePic.sprite, ModulePos = transform.localPosition, SocketPos = newSocketPos.localPosition, - cantStopRunning=data.cantStopRunning, + cantStopRunning = data.cantStopRunning, }; } #endregion #region 高亮提示和隐藏 + public void Highlight(bool enable) { - if (_targetSpriteRenderer != null && _highlightMaterial != null&&_targetSpriteRenderer.material!=_alarmMaterial) + if (_targetSpriteRenderer != null && _highlightMaterial != null && + _targetSpriteRenderer.material != _alarmMaterial) { _targetSpriteRenderer.material = enable ? _highlightMaterial : _originalMaterial; } } + public void Alarm(bool enable) { if (_targetSpriteRenderer != null && _alarmMaterial != null) @@ -123,6 +132,7 @@ namespace AibisDream.FixSystem _targetSpriteRenderer.material = enable ? _alarmMaterial : _originalMaterial; } } + // public void HideModule(bool enable) // { // if (targetSpriteRenderer != null && highlightMaterial != null) @@ -130,16 +140,16 @@ namespace AibisDream.FixSystem // targetSpriteRenderer.material = enable ? highlightMaterial : originalMaterial; // } // } - #endregion + #endregion } - + [Serializable] public struct BodyModuleData { public const string PlugInNodeTemplate = "{0}PlugIn"; public const string DeepInTemplate = "{0}DeepIn"; - + // ID public string moduleName; @@ -174,11 +184,5 @@ namespace AibisDream.FixSystem get => socketPos.ToVector3(); set => socketPos = new SerializableVector3(value); } - // [JsonIgnore] - // public Vector3 IndicatorPos - // { - // get => indicatorPos.ToVector3(); - // set => indicatorPos = new SerializableVector3(value); - // } } } \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs index 034a74445..46159c1c2 100644 --- a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs +++ b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleSystem.cs @@ -70,8 +70,6 @@ namespace AibisDream.FixSystem { heatMapController = transform.Find("HeatMapController").GetComponent(); } - - Debug.Log("Register"); FixSystemCenter.SystemDic.Register(this); } @@ -189,12 +187,12 @@ namespace AibisDream.FixSystem #region 数据加载与保存 - public override string[] GetDataKeyOptions() + public override string GetConfigPath() { - return _keyOptions ??= ConfigUtil.Instance.GetFileNames(DataPath); + return DataPath; } - public override void Load() + public override void LoadLevel() { if (string.IsNullOrEmpty(CurDataKey)) { @@ -248,7 +246,7 @@ namespace AibisDream.FixSystem BodyModules = newModules; } - public override void Save() + public override void SaveLevel() { if (string.IsNullOrEmpty(CurDataKey)) return; diff --git a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleYarnCommand.cs b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleYarnCommand.cs index cd6d41f88..dfc0a8664 100644 --- a/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleYarnCommand.cs +++ b/Assets/Scripts/FixSystemNew/BodyModule/BodyModuleYarnCommand.cs @@ -10,152 +10,176 @@ namespace AibisDream private static OscilloscopeSystem OscilloscopeSystem => FixSystemCenter.SystemDic.Get(); private static PunchTapeSystem PunchTapeSystem => FixSystemCenter.SystemDic.Get(); + [YarnCommand("SetModuleState_CantStopRunning")] - public static void SetModuleState_CantStopRunning(string ModuleName,bool state) + public static void SetModuleState_CantStopRunning(string moduleName, bool state) { - BodyModuleSystem.SetModuleState_CantStopRunning(ModuleName,state); + BodyModuleSystem.SetModuleState_CantStopRunning(moduleName, state); } + [YarnCommand("ShowHeatMap")] public static void ShowHeatMap() { BodyModuleSystem.ShowHeatMap(); } - [YarnCommand("HideHeatMap")] + + [YarnCommand("HideHeatMap")] public static void HideHeatMap() { BodyModuleSystem.HideHeatMap(); } + [YarnCommand("SetHeat")] public static void SetHeat(int heatValue) { BodyModuleSystem.SetHeat(heatValue); } + [YarnCommand("Temp_RemoveUF")] public static void Temp_RemoveUF() { - var _UFModule = BodyModuleSystem.FindBodyModuleByName("UF").gameObject; - if(_UFModule.activeInHierarchy) + var _UFModule = BodyModuleSystem.FindBodyModuleByName("UF").gameObject; + if (_UFModule.activeInHierarchy) { _UFModule.SetActive(false); } } + [YarnCommand("Temp_RemoveUFCover")] public static void Temp_RemoveUFCover() { - var _UFCover = BodyModuleSystem.FindBodyModuleByName("UF").transform.Find("Cover").gameObject; - if(_UFCover.activeInHierarchy) + var _UFCover = BodyModuleSystem.FindBodyModuleByName("UF").transform.Find("Cover").gameObject; + if (_UFCover.activeInHierarchy) { _UFCover.SetActive(false); } } + [YarnCommand("Temp_InstallUF")] public static void Temp_InstallUF() { - var _UFModule = BodyModuleSystem.FindBodyModuleByName("UF").gameObject; - if(!_UFModule.activeInHierarchy) + var _UFModule = BodyModuleSystem.FindBodyModuleByName("UF").gameObject; + if (!_UFModule.activeInHierarchy) { _UFModule.SetActive(true); } } + [YarnCommand("Temp_InstallUFCover")] public static void Temp_InstallUFCover() { - var _UFCover = BodyModuleSystem.FindBodyModuleByName("UF").transform.Find("Cover").gameObject; - if(!_UFCover.activeInHierarchy) + var _UFCover = BodyModuleSystem.FindBodyModuleByName("UF").transform.Find("Cover").gameObject; + if (!_UFCover.activeInHierarchy) { _UFCover.SetActive(true); } } + [YarnCommand("Temp_InstallChip")] public static void Temp_InstallChip() { - var _UFCover = BodyModuleSystem.FindBodyModuleByName("Color").transform.Find("Chip").gameObject; - if(!_UFCover.activeInHierarchy) + var _UFCover = BodyModuleSystem.FindBodyModuleByName("Color").transform.Find("Chip").gameObject; + if (!_UFCover.activeInHierarchy) { _UFCover.SetActive(true); } } + [YarnCommand("Temp_RemoveChip")] public static void Temp_RemoveChip() { - var _UFCover = BodyModuleSystem.FindBodyModuleByName("Color").transform.Find("Chip").gameObject; - if(_UFCover.activeInHierarchy) + var _UFCover = BodyModuleSystem.FindBodyModuleByName("Color").transform.Find("Chip").gameObject; + if (_UFCover.activeInHierarchy) { _UFCover.SetActive(false); } } + [YarnCommand("SetSocketAvailable")] - public static void SetSocketAvailable(string moduleName,bool isAvailable) + public static void SetSocketAvailable(string moduleName, bool isAvailable) { - var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); + var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); targetModule.SetSocketAvailable(isAvailable); } + [YarnCommand("ModuleHightLight")] - public static void ModuleHightLight(string moduleName,bool enable) + public static void ModuleHightLight(string moduleName, bool enable) { - var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); + var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); targetModule.Highlight(enable); } + [YarnCommand("ModuleAlarm")] - public static void ModuleAlarm(string moduleName,bool enable) + public static void ModuleAlarm(string moduleName, bool enable) { - var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); + var targetModule = BodyModuleSystem.FindBodyModuleByName(moduleName); targetModule.Alarm(enable); } + [YarnCommand("MessageBoxSetError")] public static void MessageBoxSetError() { - OscilloscopeSystem.MessageBoxSetError(); + OscilloscopeSystem.MessageBoxSetError(); } + [YarnCommand("MessageBoxSetWarning")] public static void MessageBoxSetWarning() { - OscilloscopeSystem.MessageBoxSetWarning(); + OscilloscopeSystem.MessageBoxSetWarning(); } - [YarnCommand("MessageBoxSetNormal")] + + [YarnCommand("MessageBoxSetNormal")] public static void MessageBoxSetNormal() { - OscilloscopeSystem.MessageBoxSetNormal(); + OscilloscopeSystem.MessageBoxSetNormal(); } + [YarnCommand("MessageBoxSetChecking")] public static void MessageBoxSetChecking() { - OscilloscopeSystem.MessageBoxSetChecking(); + OscilloscopeSystem.MessageBoxSetChecking(); } + [YarnCommand("MessageBoxSetNull")] public static void MessageBoxSetNull() { - OscilloscopeSystem.MessageBoxSetNull(); + OscilloscopeSystem.MessageBoxSetNull(); } + [YarnCommand("MessageBoxSetText")] public static void MessageBoxSetText(string text) { - OscilloscopeSystem.MessageBoxSetText(text); + OscilloscopeSystem.MessageBoxSetText(text); } + [YarnCommand("EnableDeepInButton")] public static void EnableDeepInButton() { - OscilloscopeSystem.StartCoroutine(OscilloscopeSystem.EnableDeepInButton()); + OscilloscopeSystem.StartCoroutine(OscilloscopeSystem.EnableDeepInButton()); } + [YarnCommand("DisableDeepInButton")] public static void DisableDeepInButton() { - OscilloscopeSystem.StartCoroutine(OscilloscopeSystem.DisableDeepInButton()); + OscilloscopeSystem.StartCoroutine(OscilloscopeSystem.DisableDeepInButton()); } + [YarnCommand("PrintPunchTapes")] public static IEnumerator PrintPunchTapes(int count) { yield return PunchTapeSystem.StartCoroutine(PunchTapeSystem.PrintPunchTapes(count)); } + [YarnCommand("HidePunchTapeGroup")] public static IEnumerator HidePunchTapeGroup() { yield return PunchTapeSystem.StartCoroutine(PunchTapeSystem.Temp_HidePunchTapeGroup()); } + [YarnCommand("ShowPunchTapeGroup")] public static void ShowPunchTapeGroup() { PunchTapeSystem.Temp_showPunchTapeGroup(); } } -} +} \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/Clinic/CharacterViewer.cs b/Assets/Scripts/FixSystemNew/Clinic/CharacterViewer.cs index 8b9f3a51d..c2d69abb3 100644 --- a/Assets/Scripts/FixSystemNew/Clinic/CharacterViewer.cs +++ b/Assets/Scripts/FixSystemNew/Clinic/CharacterViewer.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using AibisDream.Utility; using DG.Tweening; @@ -17,9 +18,11 @@ namespace AibisDream.FixSystem private Transform LinkDevice => _curCharacter.transform.Find("换液设备"); private SpriteRenderer _blinkLayer; + public CharacterData characterData; + public event Action CharacterChangeEvent; + public IEnumerator CharacterInit(string characterName) { - // 异步加载角色预制体(psb) ResourceRequest request = Resources.LoadAsync($"Characters/{characterName}"); yield return request; @@ -37,6 +40,8 @@ namespace AibisDream.FixSystem _curCharacter = null; } + characterData = new CharacterData(); + characterData.characterName = characterName; // 加载新的 GameObject characterPrefab = request.asset as GameObject; _curCharacter = Instantiate(characterPrefab, transform); @@ -45,8 +50,8 @@ namespace AibisDream.FixSystem _blinkLayer = _curCharacter.transform.Find("闭眼").GetComponent(); _blinkLayer.enabled = false; // 表情和动作只留一种 - ActiveLayer(FaceGroup); - ActiveLayer(PoseGroup); + characterData.faceName = ActiveLayer(FaceGroup); + characterData.poseName = ActiveLayer(PoseGroup); // 换液设备先隐藏 RemoveLinkDevice(); @@ -57,23 +62,33 @@ namespace AibisDream.FixSystem yield return new WaitForSeconds(1); // 激活角色 _curCharacter.SetActive(true); + + UpdateCharacterData(); } - private static void ActiveLayer(Transform root, string layerName = null) + private void UpdateCharacterData() + { + CharacterChangeEvent?.Invoke(characterData); + } + + private static string ActiveLayer(Transform root, string layerName = null) { var childLayers = root.GetComponentsInChildren(true); - if (childLayers.Length == 0) return; + if (childLayers.Length == 0) return null; + + // 如果输入为空,就默认激活一层 + if (layerName == null) + { + childLayers[0].enabled = true; + return childLayers[0].gameObject.name; + } foreach (var layer in childLayers) { layer.enabled = layer.gameObject.name == layerName; } - // 如果输入为空,就默认激活一层 - if (layerName == null) - { - childLayers[0].enabled = true; - } + return layerName; } private void SetCharacterAlpha(float alpha) @@ -90,7 +105,7 @@ namespace AibisDream.FixSystem public IEnumerator CharacterFadeIn(float duration = 1f) { - if (_curCharacter != null) + if (_curCharacter) { _curCharacter.SetActive(true); yield return FadeCharacter(1, duration); @@ -114,13 +129,15 @@ namespace AibisDream.FixSystem public void SwitchPose(string poseName) { - ActiveLayer(PoseGroup, poseName); + characterData.poseName = ActiveLayer(PoseGroup, poseName); + UpdateCharacterData(); } public void SwitchFace(string faceName) { StopAutoBlink(); - ActiveLayer(FaceGroup, faceName); + characterData.faceName = ActiveLayer(FaceGroup, faceName); + UpdateCharacterData(); } public void Blink() @@ -174,5 +191,18 @@ namespace AibisDream.FixSystem Debug.LogError($"Character {characterName} not found in loaded characters."); } } + + public void OnDestroy() + { + characterData = new CharacterData(); + UpdateCharacterData(); + } + } + + public struct CharacterData + { + public string characterName; + public string faceName; + public string poseName; } } \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs b/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs index a383b25aa..c75965eff 100644 --- a/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs +++ b/Assets/Scripts/FixSystemNew/Clinic/ClinicSystem.cs @@ -1,5 +1,8 @@ +using System; using System.Collections; using AibisDream.FixSystem; +using AibisDream.Framework; +using AibisDream.Utility; using DG.Tweening; using UnityEngine; @@ -14,16 +17,35 @@ namespace AibisDream public Vector3 pumpUpPos; public Vector3 pumpDownPos; public float pumpDuration; - + + private readonly ClinicData _clinicData; + private void Awake() { FixSystemCenter.SystemDic.Register(this); + GameLoopManager.FixDataContainer.Register(_clinicData); + character = transform.GetComponentInChildren(); + character.CharacterChangeEvent += OnCharacterChange; + + _clinicData.LoadEvent += LoadData; _pumpHead = transform.Find("正图").Find("近景").Find("桌上泵头"); _coolingScreen = transform.Find("正图").Find("近景").Find("桌面泵机运作时亮灯").gameObject; } + private void LoadData(ClinicData data) + { + StartCoroutine(LoadDataAsync(data)); + } + + private IEnumerator LoadDataAsync(ClinicData data) + { + yield return character.CharacterInit(data.characterName); + character.SwitchFace(data.faceName); + character.SwitchPose(data.poseName); + } + public IEnumerator Indoor(float duration) { // 加载诊所场景 @@ -54,5 +76,32 @@ namespace AibisDream // 熄灭屏幕 _coolingScreen.SetActive(false); } + + private void OnDestroy() + { + character.CharacterChangeEvent -= OnCharacterChange; + _clinicData.LoadEvent -= LoadData; + GameLoopManager.FixDataContainer.Unregister(); + FixSystemCenter.SystemDic.Unregister(); + } + + private void OnCharacterChange(CharacterData characterData) + { + CommonUtil.CopyProperties(characterData, _clinicData); + } + } + + public class ClinicData : IData + { + public string characterName; + public string faceName; + public string poseName; + + public event Action LoadEvent; + + public void Load() + { + LoadEvent?.Invoke(this); + } } } \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/FixStateMachine.cs b/Assets/Scripts/FixSystemNew/FixStateMachine.cs new file mode 100644 index 000000000..672881da2 --- /dev/null +++ b/Assets/Scripts/FixSystemNew/FixStateMachine.cs @@ -0,0 +1,227 @@ +using System; +using System.Collections; +using AibisDream.Framework; +using UnityEngine.PlayerLoop; + +namespace AibisDream.FixSystem +{ + public class FixStateMachine + { + private IState _curState; + private string _curArgs; + + public void SwitchState(FixState nextState, string args = "") + { + _curArgs = args; + + _curState?.Exit(); + + GameLoopManager.Instance.UpdateFixState(nextState, _curArgs); + _curState = CreateState(nextState, _curArgs); + _curState.Enter(); + } + + private static IState CreateState(FixState nextState, string args) + { + IState res = nextState switch + { + FixState.Clinic => new ClinicState(), + FixState.Engine => new EngineState(), + FixState.CoolingMachine => new CoolingMachineState(), + FixState.BodyModule => new BodyModuleState(), + FixState.Memory => new MemoryState(), + FixState.Eye => new EyeState(), + FixState.UF => new UfState(), + FixState.Gear => new GearState(), + _ => new ClinicState() + }; + + res.SetArgs(args); + return res; + } + } + + public interface IState + { + public FixState GetState { get; } + public void SetArgs(string args); + public IEnumerator Enter(); + public IEnumerator Exit(); + } + + public class ClinicState : IState + { + public FixState GetState => FixState.Clinic; + + public void SetArgs(string args) + { + // 无 + } + + public IEnumerator Enter() + { + // 切换相机 + yield break; + } + + public IEnumerator Exit() + { + // 似乎没有? + yield break; + } + } + + public class BodyModuleState : IState + { + public FixState GetState => FixState.BodyModule; + + public void SetArgs(string args) + { + // 无 + } + + public IEnumerator Enter() + { + // 切换相机 + yield break; + } + + public IEnumerator Exit() + { + // 似乎没有? + yield break; + } + } + + public class GearState : IState + { + public FixState GetState => FixState.Gear; + + private string _configKey; + + public void SetArgs(string args) + { + _configKey = args; + } + + public IEnumerator Enter() + { + // 切换相机 + yield break; + } + + public IEnumerator Exit() + { + // 切换相机 + yield break; + } + } + + public class EngineState : IState + { + public FixState GetState => FixState.Engine; + + public void SetArgs(string args) + { + // 无 + } + + public IEnumerator Enter() + { + // 切换相机 + yield break; + // 加载Level + + // 解锁 + + } + + public IEnumerator Exit() + { + // 上锁 + + // 切换相机 + yield break; + } + } + + public class CoolingMachineState : IState + { + public FixState GetState => FixState.CoolingMachine; + + public void SetArgs(string args) + { + throw new NotImplementedException(); + } + + public IEnumerator Enter() + { + throw new NotImplementedException(); + } + + public IEnumerator Exit() + { + throw new NotImplementedException(); + } + } + + public class UfState : IState + { + public FixState GetState => FixState.UF; + + public void SetArgs(string args) + { + throw new NotImplementedException(); + } + + public IEnumerator Enter() + { + throw new NotImplementedException(); + } + + public IEnumerator Exit() + { + throw new NotImplementedException(); + } + } + + public class EyeState : IState + { + public FixState GetState => FixState.Eye; + + public void SetArgs(string args) + { + throw new NotImplementedException(); + } + + public IEnumerator Enter() + { + throw new NotImplementedException(); + } + + public IEnumerator Exit() + { + throw new NotImplementedException(); + } + } + + public class MemoryState : IState + { + public FixState GetState => FixState.Memory; + + public void SetArgs(string args) + { + throw new NotImplementedException(); + } + + public IEnumerator Enter() + { + throw new NotImplementedException(); + } + + public IEnumerator Exit() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/FixStateMachine.cs.meta b/Assets/Scripts/FixSystemNew/FixStateMachine.cs.meta new file mode 100644 index 000000000..4a069b78e --- /dev/null +++ b/Assets/Scripts/FixSystemNew/FixStateMachine.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 235d991f9a3e427fa2aa11cb4b2b372d +timeCreated: 1736254327 \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs index 0921afe00..203c754eb 100644 --- a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs +++ b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs @@ -16,6 +16,9 @@ namespace AibisDream.FixSystem // TODO 这个回头要改 curState = FixState.Clinic; AudioManager.PlayAmb1Audio("amb_room"); + + // 初始化状态机 + StateMachine = new FixStateMachine(); } #region 系统索引 @@ -25,6 +28,12 @@ namespace AibisDream.FixSystem #endregion + #region 状态机相关 + + public static FixStateMachine StateMachine; + + #endregion + #region 转场管理 private static readonly StateDictionary TransitionDic = new(); diff --git a/Assets/Scripts/FixSystemNew/StateTransition/BodyModuleTransition.cs b/Assets/Scripts/FixSystemNew/StateTransition/BodyModuleTransition.cs index f121fbf78..6b421f298 100644 --- a/Assets/Scripts/FixSystemNew/StateTransition/BodyModuleTransition.cs +++ b/Assets/Scripts/FixSystemNew/StateTransition/BodyModuleTransition.cs @@ -104,7 +104,7 @@ namespace AibisDream.FixSystem if (!string.IsNullOrEmpty(_configKey)) { gearSystem.CurDataKey = _configKey; - gearSystem.Load(); + gearSystem.LoadLevel(); } } diff --git a/Assets/Scripts/FixSystemNew/StateTransition/ClinicTransition.cs b/Assets/Scripts/FixSystemNew/StateTransition/ClinicTransition.cs index 02f60d636..766ebf52b 100644 --- a/Assets/Scripts/FixSystemNew/StateTransition/ClinicTransition.cs +++ b/Assets/Scripts/FixSystemNew/StateTransition/ClinicTransition.cs @@ -25,7 +25,7 @@ namespace AibisDream.FixSystem if (!string.IsNullOrEmpty(_configName)) { bodyModuleSystem.CurDataKey = _configName; - bodyModuleSystem.Load(); + bodyModuleSystem.LoadLevel(); } // 隐藏诊所 @@ -75,7 +75,7 @@ namespace AibisDream.FixSystem if (!string.IsNullOrEmpty(_configName)) { engineSystem.CurDataKey = _configName; - engineSystem.Load(); + engineSystem.LoadLevel(); } yield return engineSystem.OpenCover().WaitForCompletion(); @@ -156,7 +156,7 @@ namespace AibisDream.FixSystem if (!string.IsNullOrEmpty(_configName)) { gearSystem.CurDataKey = _configName; - gearSystem.Load(); + gearSystem.LoadLevel(); } } diff --git a/Assets/Scripts/FixSystemNew/StateTransition/FixState.cs b/Assets/Scripts/FixSystemNew/StateTransition/FixState.cs index 516f90587..094e52995 100644 --- a/Assets/Scripts/FixSystemNew/StateTransition/FixState.cs +++ b/Assets/Scripts/FixSystemNew/StateTransition/FixState.cs @@ -13,7 +13,6 @@ namespace AibisDream.FixSystem Memory, Eye, UF, - VisualSense, Engine, Gear } diff --git a/Assets/Scripts/Framework/Core/Core.cs b/Assets/Scripts/Framework/Core/Core.cs index b7f8fdac8..7a3d24909 100644 --- a/Assets/Scripts/Framework/Core/Core.cs +++ b/Assets/Scripts/Framework/Core/Core.cs @@ -1,37 +1,27 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq; +using AibisDream.Utility; +using Newtonsoft.Json.Linq; using UnityEngine; namespace AibisDream.Framework { - public interface IModule - { - void Init(); - void Init(string dataKey); - void Deinit(); - } - - public interface ISystem - { - void Init(); - void Deinit(); - } - public interface ISystemHasData { string CurDataKey { get; set; } - string[] GetDataKeyOptions(); - void Load(); - void Save(); + string GetConfigPath(); + void LoadLevel(); + void SaveLevel(); } public abstract class SystemHasData : MonoBehaviour, ISystemHasData { public abstract string CurDataKey { get; set; } - public abstract string[] GetDataKeyOptions(); - public abstract void Load(); - public abstract void Save(); + public abstract string GetConfigPath(); + public abstract void LoadLevel(); + public abstract void SaveLevel(); } public interface IHasData @@ -39,7 +29,12 @@ namespace AibisDream.Framework void Save(string dataKey); void Load(string dataKey); } - + + public interface IData + { + void Load(); + } + #region IOC容器 public class IOCContainer @@ -85,5 +80,234 @@ namespace AibisDream.Framework public void Clear() => _instances.Clear(); } + public class DataContainer + { + private Dictionary _instances = new(); + + public void Register(T instance) where T : IData + { + var key = typeof(T).AssemblyQualifiedName; + if (key != null) _instances[key] = instance; + } + + public T Get() where T : class, IData + { + var key = typeof(T).AssemblyQualifiedName; + if (key != null && _instances.TryGetValue(key, out var retInstance)) + { + return retInstance as T; + } + + return null; + } + + public object Get(Type type) + { + var key = type.AssemblyQualifiedName; + if (key != null && _instances.TryGetValue(key, out var retInstance)) + { + return retInstance; + } + + return null; + } + + public T Unregister() where T : class, IData + { + var res = Get(); + var assemblyQualifiedName = typeof(T).AssemblyQualifiedName; + if (res != null && assemblyQualifiedName != null) + { + _instances.Remove(assemblyQualifiedName); + return res; + } + + return null; + } + + public void Clear() => _instances.Clear(); + + public JObject SaveAsJson() + { + return JObject.FromObject(_instances); + } + + public void LoadByJson(JObject dataJson) + { + foreach (var fixDataItemPair in _instances) + { + if (!dataJson.TryGetValue(fixDataItemPair.Key, out var fixData)) + { + Debug.Log(fixDataItemPair.Key + "未注册"); + continue; + } + + var fixDataType = Type.GetType(fixDataItemPair.Key); + if (fixDataType == null) + { + Debug.Log(fixDataItemPair.Key + "类型不存在"); + continue; + } + + // 把Json中读到的参数填回Data + var tempObj = fixData.ToObject(fixDataType); + CommonUtil.CopyProperties(tempObj, fixDataItemPair.Value); + } + + foreach (var data in _instances.Values) + { + data.Load(); + } + } + } + + #endregion + + #region 事件相关 + + public interface IEasyEvent + { + IUnRegister Register(Action onEvent); + public void UnRegisterAll(); + } + + public class EasyEvent : IEasyEvent + { + private event Action OnEvent = () => { }; + + public IUnRegister Register(Action onEvent) + { + OnEvent += onEvent; + return new CustomUnRegister(() => { UnRegister(onEvent); }); + } + + public void UnRegister(Action onEvent) => OnEvent -= onEvent; + + public void Trigger() => OnEvent?.Invoke(); + + public void UnRegisterAll() + { + OnEvent = null; + } + } + + public class EasyEvent : IEasyEvent + { + private event Action OnEvent = e => { }; + + public IUnRegister Register(Action onEvent) + { + OnEvent += onEvent; + return new CustomUnRegister(() => { UnRegister(onEvent); }); + } + + public void UnRegister(Action onEvent) => OnEvent -= onEvent; + + public void Trigger(T t) => OnEvent?.Invoke(t); + + IUnRegister IEasyEvent.Register(Action onEvent) + { + return Register(Action); + void Action(T _) => onEvent(); + } + + public void UnRegisterAll() + { + OnEvent = null; + } + } + + public class EasyEvent : IEasyEvent + { + private event Action OnEvent = (_, _) => { }; + + public IUnRegister Register(Action onEvent) + { + OnEvent += onEvent; + return new CustomUnRegister(() => { UnRegister(onEvent); }); + } + + public void UnRegister(Action onEvent) => OnEvent -= onEvent; + + public void Trigger(T t, TK k) => OnEvent?.Invoke(t, k); + + IUnRegister IEasyEvent.Register(Action onEvent) + { + return Register(Action); + void Action(T _, TK __) => onEvent(); + } + + public void UnRegisterAll() + { + OnEvent = null; + } + } + + public interface IUnRegister + { + void UnRegister(); + } + + public struct CustomUnRegister : IUnRegister + { + private Action OnUnRegister { get; set; } + public CustomUnRegister(Action onUnRegister) => OnUnRegister = onUnRegister; + + public void UnRegister() + { + OnUnRegister.Invoke(); + OnUnRegister = null; + } + } + + public class BindProperty + { + private T _value; + private EasyEvent _onValueChanged; + + public BindProperty(T defaultValue = default) => _value = defaultValue; + + public static Func Comparer { get; set; } = (a, b) => a.Equals(b); + + public BindProperty WithComparer(Func comparer) + { + Comparer = comparer; + return this; + } + + public T Value + { + get => GetValue(); + set + { + if (value == null && _value == null) return; + if (value != null && Comparer(value, _value)) return; + + SetValue(value); + _onValueChanged.Trigger(value); + } + } + + private void SetValue(T newValue) => _value = newValue; + + private T GetValue() => _value; + + public void SetValueWithoutEvent(T newValue) => _value = newValue; + + public IUnRegister Register(Action onValueChanged) + { + return _onValueChanged.Register(onValueChanged); + } + + public void UnRegister(Action onValueChanged) => _onValueChanged.UnRegister(onValueChanged); + + public override string ToString() => Value.ToString(); + + public void RemoveAll() + { + _onValueChanged?.UnRegisterAll(); + } + } + #endregion } \ No newline at end of file diff --git a/Assets/Scripts/Framework/Core/EventKit.cs b/Assets/Scripts/Framework/Core/EventKit.cs new file mode 100644 index 000000000..562023628 --- /dev/null +++ b/Assets/Scripts/Framework/Core/EventKit.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using AibisDream.Utility; +using UnityEngine; + +namespace AibisDream.Framework +{ + public class EnumEventSystem + { + public static readonly EnumEventSystem Global = new(); + + private readonly Dictionary _eventDict = new(50); + + protected EnumEventSystem() + { + } + + public IUnRegister Register(T key, Action onEvent) where T : IConvertible + { + var kv = key.ToInt32(null); + + if (_eventDict.TryGetValue(typeof(T), out var events)) + { + if (events[kv] == null) + { + var tempEvent = new EasyEvent(); + events[kv] = tempEvent; + return tempEvent.Register(onEvent); + } + + if (events[kv] is EasyEvent targetEvent) + { + return targetEvent.Register(onEvent); + } + + Debug.Log($"{key.ToString()} 注册参数错误"); + return null; + } + else + { + events = new IEasyEvent[Enum.GetValues(typeof(T)).Length]; + _eventDict.Add(typeof(T), events); + + var tempEvent = new EasyEvent(); + events[kv] = tempEvent; + + return tempEvent.Register(onEvent); + } + } + + public IUnRegister Register(T key, Action onEvent) where T : IConvertible where TE : struct + { + var kv = key.ToInt32(null); + + if (_eventDict.TryGetValue(typeof(T), out var events)) + { + if (events[kv] == null) + { + var tempEvent = new EasyEvent(); + events[kv] = tempEvent; + return tempEvent.Register(onEvent); + } + + if (events[kv] is EasyEvent targetEvent) + { + return targetEvent.Register(onEvent); + } + + Debug.Log($"{key.ToString()} 注册参数错误"); + return null; + } + else + { + events = new IEasyEvent[Enum.GetValues(typeof(T)).Length]; + _eventDict.Add(typeof(T), events); + + var tempEvent = new EasyEvent(); + events[kv] = tempEvent; + + return tempEvent.Register(onEvent); + } + } + + public void UnRegister(T key, Action onEvent) where T : IConvertible + { + var kv = key.ToInt32(null); + + if (!_eventDict.TryGetValue(typeof(T), out var e)) return; + if (e.Length >= kv || e[kv] == null) return; + + if (e[kv] is EasyEvent tempEvent) + { + tempEvent.UnRegister(onEvent); + } + } + + public void UnRegister(T key) where T : IConvertible + { + var kv = key.ToInt32(null); + + if (!_eventDict.TryGetValue(typeof(T), out var e)) return; + if (e.Length >= kv || e[kv] == null) return; + + e[kv].UnRegisterAll(); + } + + public void UnRegisterAll() + { + foreach (var eventItem in _eventDict.Values.SelectMany(eventArr => eventArr)) + { + eventItem?.UnRegisterAll(); + } + + _eventDict.Clear(); + } + + public void Send(T key) where T : IConvertible + { + var kv = key.ToInt32(null); + + if (!_eventDict.TryGetValue(typeof(T), out var e)) return; + if (e.Length >= kv || e[kv] == null) return; + + if (e[kv] is EasyEvent tempEvent) + { + tempEvent.Trigger(); + } + } + + public void Send(T key, TE param) where T : IConvertible + { + var kv = key.ToInt32(null); + + if (!_eventDict.TryGetValue(typeof(T), out var e)) return; + if (e.Length >= kv || e[kv] == null) return; + + if (e[kv] is EasyEvent tempEvent) + { + tempEvent.Trigger(param); + } + } + } + + public class StringEventSystem + { + public static readonly StringEventSystem Global = new(); + + private readonly Dictionary _events = new(); + + public IUnRegister Register(string key, Action onEvent) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As(); + return easyEvent.Register(onEvent); + } + else + { + var easyEvent = new EasyEvent(); + _events.Add(key, easyEvent); + return easyEvent.Register(onEvent); + } + } + + public void UnRegister(string key, Action onEvent) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As(); + easyEvent?.UnRegister(onEvent); + } + } + + public void Send(string key) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As(); + easyEvent?.Trigger(); + } + } + + + public IUnRegister Register(string key, Action onEvent) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As>(); + return easyEvent.Register(onEvent); + } + else + { + var easyEvent = new EasyEvent(); + _events.Add(key, easyEvent); + return easyEvent.Register(onEvent); + } + } + + + public void UnRegister(string key, Action onEvent) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As>(); + easyEvent?.UnRegister(onEvent); + } + } + + public void Send(string key, T data) + { + if (_events.TryGetValue(key, out var e)) + { + var easyEvent = e.As>(); + easyEvent?.Trigger(data); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Framework/Core/EventKit.cs.meta b/Assets/Scripts/Framework/Core/EventKit.cs.meta new file mode 100644 index 000000000..8b36e3912 --- /dev/null +++ b/Assets/Scripts/Framework/Core/EventKit.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 21974c647d3c4682b2c9dc6b8c23b4ef +timeCreated: 1736232227 \ No newline at end of file diff --git a/Assets/Scripts/Framework/SingletonKit/Singleton.cs b/Assets/Scripts/Framework/SingletonKit/Singleton.cs index d9eac9ae2..b14a339bd 100644 --- a/Assets/Scripts/Framework/SingletonKit/Singleton.cs +++ b/Assets/Scripts/Framework/SingletonKit/Singleton.cs @@ -29,6 +29,11 @@ namespace AibisDream.Kit { Instance = null; } + OnSingletonDestroy(); + } + + public virtual void OnSingletonDestroy() + { } } } diff --git a/Assets/Scripts/Game Loop/GameLoopManager.cs b/Assets/Scripts/Game Loop/GameLoopManager.cs index c8312da22..667905aff 100644 --- a/Assets/Scripts/Game Loop/GameLoopManager.cs +++ b/Assets/Scripts/Game Loop/GameLoopManager.cs @@ -1,5 +1,11 @@ +using System; using System.Collections; +using System.Collections.Generic; +using AibisDream.FixSystem; +using AibisDream.Framework; using AibisDream.Kit; +using AibisDream.Utility; +using Newtonsoft.Json.Linq; using UnityEngine; using Yarn.Unity; @@ -7,42 +13,50 @@ namespace AibisDream { public class GameLoopManager : Singleton { - [Header("运行模式")] - [SerializeField] - private RunMode runMode; + #region 运行模式相关 - [Header("正式环境参数")] - [SerializeField] private TalkSceneSO firstTalkSo; + [Header("可用so合集")] + public TalkSceneSO[] totalSceneSos; + + public RunMode runMode; + + [Header("生产环境数据(一般不动)")] public TalkSceneSO firstTalkSo; + [Header("单场景测试")] public TalkSceneSO testTalkSo; + [Header("存档测试")] public string saveFileName; + + #endregion private TalkSceneSO _currentTalkSceneSo; - - [SerializeField] - private string clinicScene; - - [Header("测试环境参数")] - [SerializeField] private string testYarnProject; - + public void Start() { - if (runMode == RunMode.Test) +#if UNITY_EDITOR + if (runMode == RunMode.SingleScene) { MainUIController.Instance.TVFadeOut(1); GameObject.Find("Menu Canvas").SetActive(false); - StartCoroutine(StartTestGame()); + StartSingleSceneTest(); } + else if (runMode == RunMode.SaveFile) + { + MainUIController.Instance.TVFadeOut(1); + GameObject.Find("Menu Canvas").SetActive(false); + StartCoroutine(LoadSaveFile(saveFileName)); + } +#else + runMode = RunMode.Product; +#endif } public void StartNewGame() { _currentTalkSceneSo = firstTalkSo; - StartCoroutine(LoadClinicScene()); } - public void StartNewGame(TalkSceneSO sceneSo) + private void StartSingleSceneTest() { - _currentTalkSceneSo = sceneSo; - + _currentTalkSceneSo = testTalkSo; StartCoroutine(LoadClinicScene()); } @@ -53,15 +67,6 @@ namespace AibisDream DialogController.Instance.StartDialog(_currentTalkSceneSo.yarnProject); } - public IEnumerator StartTestGame() - { - // TODO 全部改好之后这里要直接进入FixScene - yield return null; - //yield return SceneLoader.Instance.LoadSceneAsync(clinicScene); - var proj = Resources.Load($"Yarn/{testYarnProject}/{testYarnProject}"); - DialogController.Instance.StartDialog(proj); - } - public IEnumerator NextSceneSo() { if (_currentTalkSceneSo && _currentTalkSceneSo.nextScene) @@ -77,11 +82,119 @@ namespace AibisDream Debug.Log("没有下个场景了"); } } + + #region 存档相关 + + private static readonly string SaveFilePath = Application.streamingAssetsPath + "/SaveFiles"; + + // 维修系统相关数据 + public static readonly DataContainer FixDataContainer = new(); + + // 对话变量存储 + private VariableStorageBehaviour _dialogStorage; + + // 当前场景 + private string _curSceneKey; + + // 状态机 + private string _fixStateArgs; + private FixState _fixState; + + public override void OnSingletonInit() + { + _dialogStorage = FindObjectOfType(); + } + + /// + /// 当前场景自行更新 + /// + /// 当前scene + public void UpdateCurScene(string sceneName) + { + _curSceneKey = sceneName; + } + + /// + /// 状态机状态更新 + /// + /// + /// + public void UpdateFixState(FixState curState, string curArgs) + { + _fixState = curState; + _fixStateArgs = curArgs; + } + + private IEnumerator LoadSaveFile(string saveName) + { + var saveFile = JsonUtil.ReadJObject($"{SaveFilePath}/{saveName}"); + // 先加载对话数据 + var floatDict = saveFile["floatDict"]?.ToObject>(); + var stringDict = saveFile["stringDict"]?.ToObject>(); + var boolDict = saveFile["boolDict"]?.ToObject>(); + _dialogStorage.SetAllVariables(floatDict, stringDict, boolDict); + + // 再加载场景 + _currentTalkSceneSo = Array.Find(totalSceneSos, so => so.name == saveFile["curTalkSceneSo"]?.ToString()); + + yield return SceneLoader.Instance.LoadSceneAsync(saveFile["curSceneKey"]?.ToString()); + + if (saveFile["fixDataContainer"] is not JObject fixDataJson) + { + Debug.Log("维修数据读取问题"); + yield break; + } + + // 场景加载完成之后把数据填回去 + FixDataContainer.LoadByJson(fixDataJson); + // 初始化维修状态机 + _fixState = saveFile["fixState"]!.ToObject(); + _fixStateArgs = saveFile["fixStateArgs"]!.ToString(); + FixSystemCenter.StateMachine.SwitchState(_fixState, _fixStateArgs); + + // 开启对话 + DialogController.Instance.StartDialog(_currentTalkSceneSo.yarnProject); + } + + public void Save() + { + JObject saveFile = new JObject(); + + // 场景维修相关数据保存 + var fixData = FixDataContainer.SaveAsJson(); + saveFile["fixDataContainer"] = fixData; + + // 保存对话变量 + var (floatDict, stringDict, boolDict) = _dialogStorage.GetAllVariables(); + saveFile["floatDict"] = JObject.FromObject(floatDict); + saveFile["stringDict"] = JObject.FromObject(stringDict); + saveFile["boolDict"] = JObject.FromObject(boolDict); + + // 保存场景数据 + saveFile["curSceneKey"] = _curSceneKey; + saveFile["curTalkSceneSo"] = _currentTalkSceneSo.name; + + // 保存状态机数据 + saveFile["fixState"] = (int) _fixState; + saveFile["fixStateArgs"] = _fixStateArgs; + + // 存为Json + JsonUtil.SaveJObject(saveFile, GetSavePath()); + } + + private string GetSavePath() + { + _dialogStorage.TryGetValue("$gameStage", out float gameStage); + return $"{SaveFilePath}/{_currentTalkSceneSo.name}_{gameStage}_{DateTime.Now:yyyyMMdd_HHmmss}"; + } + + #endregion } public enum RunMode { - Test, Pro, FixTest + Product, + SingleScene, + SaveFile } -} - +} \ No newline at end of file diff --git a/Assets/Scripts/Game Loop/SceneLoader.cs b/Assets/Scripts/Game Loop/SceneLoader.cs index 68ad33e25..d1113f8b5 100644 --- a/Assets/Scripts/Game Loop/SceneLoader.cs +++ b/Assets/Scripts/Game Loop/SceneLoader.cs @@ -1,5 +1,5 @@ -using System; using System.Collections; +using AibisDream.Framework; using AibisDream.Kit; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; @@ -11,17 +11,21 @@ namespace AibisDream { #region 场景转换参数 - private string currentScene; + private BindProperty _currentScene; private AsyncOperationHandle _loadHandle; - private string sceneToLoad; - private bool isLoading; - - #endregion - - #region 场景切换事件 - - public event Action LoadSceneEvent; - public event Action UnloadSceneEvent; + private string _sceneToLoad; + private bool _isLoading; + + public override void OnSingletonInit() + { + _currentScene = new BindProperty(); + _currentScene.Register(GameLoopManager.Instance.UpdateCurScene); + } + + public override void OnSingletonDestroy() + { + _currentScene.UnRegister(GameLoopManager.Instance.UpdateCurScene); + } #endregion @@ -41,50 +45,45 @@ namespace AibisDream /// public IEnumerator LoadSceneAsync(string targetScene) { - if (isLoading) + if (_isLoading) { yield return null; } else { // 场景转换参数 - isLoading = true; - sceneToLoad = targetScene; - if (currentScene != null) + _isLoading = true; + _sceneToLoad = targetScene; + if (string.IsNullOrEmpty(_currentScene.Value)) { - UnloadSceneEvent?.Invoke(); yield return Addressables.UnloadSceneAsync(_loadHandle); } - - _loadHandle = Addressables.LoadSceneAsync(sceneToLoad, LoadSceneMode.Additive); + _loadHandle = Addressables.LoadSceneAsync(_sceneToLoad, LoadSceneMode.Additive); yield return _loadHandle; - - LoadSceneEvent?.Invoke(); - currentScene = sceneToLoad; - isLoading = false; + _currentScene.Value = _sceneToLoad; + _isLoading = false; } } public IEnumerator UnloadSceneAsync(string sceneToUnload) { - if (isLoading) + if (_isLoading) { yield return null; } else { - isLoading = true; + _isLoading = true; - if (currentScene == sceneToUnload) + if (_currentScene.Value == sceneToUnload) { - UnloadSceneEvent?.Invoke(); yield return Addressables.UnloadSceneAsync(_loadHandle, true); - currentScene = null; + _currentScene.Value = null; } - isLoading = false; + _isLoading = false; } } } diff --git a/Assets/Scripts/Game Loop/StartMenu.cs b/Assets/Scripts/Game Loop/StartMenu.cs index bf2e98bf5..cb8fefac6 100644 --- a/Assets/Scripts/Game Loop/StartMenu.cs +++ b/Assets/Scripts/Game Loop/StartMenu.cs @@ -14,8 +14,6 @@ namespace AibisDream { [SerializeField] private GameObject startTab; [SerializeField] private GameObject levelTab; - - [SerializeField] private TalkSceneSO[] talkSceneSoArray; [SerializeField] private GameObject buttonPrefab; private void OnEnable() @@ -40,38 +38,6 @@ namespace AibisDream { public void SelectLevel() { SwitchToLevelTab(); - // 生成关卡按钮 - GeneLevelButtons(); - } - - private void GeneLevelButtons() - { - // 销毁原来的按钮 - foreach (Transform child in levelTab.transform) - { - if (child.gameObject.name == "Suggestion") - { - continue; - } - Destroy(child.gameObject); - } - - // 生成新按钮 - for (int i = 0; i < talkSceneSoArray.Length; i++) - { - var tempButton = Instantiate(buttonPrefab, levelTab.transform); - tempButton.GetComponent().text = $"第{i + 1}关"; - var idx = i; - tempButton.GetComponent