From 12e37dc1c7b3782bc91ff849945d3decbbf66c7c Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 18:21:39 +0900 Subject: [PATCH 01/11] Add player action state and abnormality debug workflow --- AGENTS.md | 5 + .../Data_Abnormality_Player_Silence.asset | 24 + ...Data_Abnormality_Player_Silence.asset.meta | 8 + .../Data_Abnormality_Player_Stun.asset | 24 + .../Data_Abnormality_Player_Stun.asset.meta | 8 + .../Data_SkillEffect_Player_기절.asset | 26 ++ .../Data_SkillEffect_Player_기절.asset.meta | 8 + .../Data_SkillEffect_Player_침묵.asset | 26 ++ .../Data_SkillEffect_Player_침묵.asset.meta | 8 + .../Player/Prefab_Player_Default.prefab | 64 +++ .../Abnormalities/AbnormalityManager.cs | 98 +++- Assets/_Game/Scripts/InputSystem_Actions.cs | 39 ++ .../Scripts/InputSystem_Actions.inputactions | 20 + .../Player/PlayerAbnormalityDebugHUD.cs | 442 ++++++++++++++++++ .../Player/PlayerAbnormalityDebugHUD.cs.meta | 2 + .../PlayerAbnormalityVerificationRunner.cs | 226 +++++++++ ...layerAbnormalityVerificationRunner.cs.meta | 2 + .../_Game/Scripts/Player/PlayerActionState.cs | 104 +++++ .../Scripts/Player/PlayerActionState.cs.meta | 2 + Assets/_Game/Scripts/Player/PlayerMovement.cs | 45 +- .../Scripts/Player/PlayerNetworkController.cs | 32 ++ .../_Game/Scripts/Player/PlayerSkillInput.cs | 87 +++- Assets/_Game/Scripts/UI/ConnectionUI.cs | 11 + 23 files changed, 1286 insertions(+), 25 deletions(-) create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset.meta create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset.meta create mode 100644 Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs create mode 100644 Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs.meta create mode 100644 Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs create mode 100644 Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs.meta create mode 100644 Assets/_Game/Scripts/Player/PlayerActionState.cs create mode 100644 Assets/_Game/Scripts/Player/PlayerActionState.cs.meta diff --git a/AGENTS.md b/AGENTS.md index 77fa0eb4..81a4f71c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -322,6 +322,11 @@ public class NetworkedComponent : NetworkBehaviour ## Notes +- For Unity work, prefer Unity MCP for active scene inspection, runtime verification, prefab checks, and console review when it is available in the session. +- Never edit code, scenes, prefabs, components, or Unity asset settings while the Unity Editor is in play mode. Stop play mode first, then edit. +- After Unity-related edits, refresh or compile as needed and check the Unity console before proceeding. +- For networked play tests, prefer a temporary non-conflicting test port when needed and restore the default port after validation. +- The user has a strong project preference that play mode must be stopped before edits because network ports can remain occupied otherwise. - All code comments and documentation should be in Korean - Use `[Min()]` attribute for numeric minimums in Inspector - Use `[TextArea]` for multi-line string fields diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset new file mode 100644 index 00000000..628e3523 --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3} + m_Name: Data_Abnormality_Player_Silence + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData + abnormalityName: 침묵 + icon: {fileID: 0} + duration: 3 + level: 1 + isDebuff: 1 + statModifiers: [] + periodicInterval: 0 + periodicValue: 0 + controlType: 2 + slowMultiplier: 0.5 diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset.meta b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset.meta new file mode 100644 index 00000000..f0512f2e --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e365be692bf794d47af14aecd996fcb6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset new file mode 100644 index 00000000..2b457f1a --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3} + m_Name: Data_Abnormality_Player_Stun + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData + abnormalityName: 기절 + icon: {fileID: 0} + duration: 2 + level: 1 + isDebuff: 1 + statModifiers: [] + periodicInterval: 0 + periodicValue: 0 + controlType: 1 + slowMultiplier: 0.5 diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset.meta b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset.meta new file mode 100644 index 00000000..24281771 --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fed5160fb0f9444383fdd656ddc38cb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset new file mode 100644 index 00000000..1244e7e9 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf750718c64c4bd48af905d2927351de, type: 3} + m_Name: "Data_SkillEffect_Player_\uAE30\uC808" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.AbnormalityEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 0 + areaRadius: 2 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + abnormalityData: {fileID: 11400000, guid: 6fed5160fb0f9444383fdd656ddc38cb, type: 2} diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset.meta new file mode 100644 index 00000000..c4f65570 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_기절.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 57c4f5cb3bcd7ab4bad0520d024ae01f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset new file mode 100644 index 00000000..30c9a8b8 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf750718c64c4bd48af905d2927351de, type: 3} + m_Name: "Data_SkillEffect_Player_\uCE68\uBB35" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.AbnormalityEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 0 + areaRadius: 2 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + abnormalityData: {fileID: 11400000, guid: e365be692bf794d47af14aecd996fcb6, type: 2} diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset.meta new file mode 100644 index 00000000..a73defc4 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_침묵.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5242fddf0b86774f9810ec0e6a8ca03 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab index 796e4be2..c9596450 100644 --- a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab +++ b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab @@ -24,6 +24,9 @@ GameObject: - component: {fileID: 3552488436187204500} - component: {fileID: -5132198055668300151} - component: {fileID: -6410357568507457303} + - component: {fileID: 3574789915074274759} + - component: {fileID: 2540460367028266762} + - component: {fileID: 1829782337872253002} m_Layer: 0 m_Name: Prefab_Player_Default m_TagString: Player @@ -139,6 +142,7 @@ MonoBehaviour: jumpForce: 5 skillController: {fileID: 6912018896034183004} animator: {fileID: 3426985706796420257} + actionState: {fileID: 0} --- !u!114 &194806265065691022 MonoBehaviour: m_ObjectHideFlags: 0 @@ -324,6 +328,7 @@ MonoBehaviour: skillController: {fileID: 6912018896034183004} networkController: {fileID: 0} weaponEquipment: {fileID: 0} + actionState: {fileID: 0} --- !u!114 &1242716222252539497 MonoBehaviour: m_ObjectHideFlags: 0 @@ -398,6 +403,65 @@ MonoBehaviour: startingWeapon: {fileID: 11400000, guid: 646964ccbda84e947b97537d7f7813aa, type: 2} registeredWeapons: - {fileID: 11400000, guid: 646964ccbda84e947b97537d7f7813aa, type: 2} +--- !u!114 &3574789915074274759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6473031571298860035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01f7f1d2e296d2046b2977e94b7269fe, type: 3} + m_Name: + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Player.PlayerActionState + networkController: {fileID: 0} + abnormalityManager: {fileID: 0} + skillController: {fileID: 0} + spectator: {fileID: 0} +--- !u!114 &2540460367028266762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6473031571298860035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bea222c7cf052d949984b6c08b08e545, type: 3} + m_Name: + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Player.PlayerAbnormalityDebugHUD + ShowTopMostFoldoutHeaderGroup: 1 + abnormalityManager: {fileID: 0} + networkController: {fileID: 0} + showOnStart: 0 + debugLogs: 1 + abnormalityCatalog: [] +--- !u!114 &1829782337872253002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6473031571298860035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 43d5dfd0218bf3445b8678dae42350d6, type: 3} + m_Name: + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Player.PlayerAbnormalityVerificationRunner + ShowTopMostFoldoutHeaderGroup: 1 + abnormalityManager: {fileID: 0} + actionState: {fileID: 0} + networkController: {fileID: 0} + stunData: {fileID: 0} + silenceData: {fileID: 0} + runOnStartInEditor: 0 + settleDelay: 0.2 + isRunning: 0 + lastRunPassed: 0 + totalChecks: 0 + failedChecks: 0 + lastReport: --- !u!1001 &361239394574523229 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs index 0a9503de..53180f10 100644 --- a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs +++ b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs @@ -28,23 +28,28 @@ namespace Colosseum.Abnormalities private int silenceCount; private float slowMultiplier = 1f; + // 클라이언트 판정용 제어 효과 동기화 변수 + private NetworkVariable syncedStunCount = new NetworkVariable(0); + private NetworkVariable syncedSilenceCount = new NetworkVariable(0); + private NetworkVariable syncedSlowMultiplier = new NetworkVariable(1f); + // 네트워크 동기화용 데이터 private NetworkList syncedAbnormalities; /// /// 기절 상태 여부 /// - public bool IsStunned => stunCount > 0; + public bool IsStunned => GetCurrentStunCount() > 0; /// /// 침묵 상태 여부 /// - public bool IsSilenced => silenceCount > 0; + public bool IsSilenced => GetCurrentSilenceCount() > 0; /// /// 이동 속도 배율 (1.0 = 기본, 0.5 = 50% 감소) /// - public float MoveSpeedMultiplier => slowMultiplier; + public float MoveSpeedMultiplier => GetCurrentSlowMultiplier(); /// /// 행동 가능 여부 (기절이 아닐 때) @@ -102,11 +107,33 @@ namespace Colosseum.Abnormalities public override void OnNetworkSpawn() { syncedAbnormalities.OnListChanged += OnSyncedAbnormalitiesChanged; + + syncedStunCount.OnValueChanged += HandleSyncedStunChanged; + syncedSilenceCount.OnValueChanged += HandleSyncedSilenceChanged; + syncedSlowMultiplier.OnValueChanged += HandleSyncedSlowChanged; + + if (networkController != null) + { + networkController.OnDeathStateChanged += HandleDeathStateChanged; + } + + if (IsServer) + { + SyncControlEffects(); + } } public override void OnNetworkDespawn() { syncedAbnormalities.OnListChanged -= OnSyncedAbnormalitiesChanged; + syncedStunCount.OnValueChanged -= HandleSyncedStunChanged; + syncedSilenceCount.OnValueChanged -= HandleSyncedSilenceChanged; + syncedSlowMultiplier.OnValueChanged -= HandleSyncedSlowChanged; + + if (networkController != null) + { + networkController.OnDeathStateChanged -= HandleDeathStateChanged; + } } private void Update() @@ -129,6 +156,12 @@ namespace Colosseum.Abnormalities return; } + if (networkController != null && networkController.IsDead) + { + Debug.Log($"[Abnormality] Ignored {data.abnormalityName} because {gameObject.name} is dead"); + return; + } + if (IsServer) { ApplyAbnormalityInternal(data, source); @@ -386,6 +419,8 @@ namespace Colosseum.Abnormalities slowMultiplier = Mathf.Min(slowMultiplier, data.slowMultiplier); break; } + + SyncControlEffects(); } private void RemoveControlEffect(AbnormalityData data) @@ -404,6 +439,8 @@ namespace Colosseum.Abnormalities RecalculateSlowMultiplier(); break; } + + SyncControlEffects(); } private void RecalculateSlowMultiplier() @@ -419,6 +456,22 @@ namespace Colosseum.Abnormalities } } + private int GetCurrentStunCount() => IsServer ? stunCount : syncedStunCount.Value; + + private int GetCurrentSilenceCount() => IsServer ? silenceCount : syncedSilenceCount.Value; + + private float GetCurrentSlowMultiplier() => IsServer ? slowMultiplier : syncedSlowMultiplier.Value; + + private void SyncControlEffects() + { + if (!IsServer) + return; + + syncedStunCount.Value = stunCount; + syncedSilenceCount.Value = silenceCount; + syncedSlowMultiplier.Value = slowMultiplier; + } + private void SyncAbnormalityAdd(ActiveAbnormality abnormality, GameObject source) { var sourceClientId = source != null && source.TryGetComponent(out var netObj) ? netObj.OwnerClientId : 0UL; @@ -464,6 +517,45 @@ namespace Colosseum.Abnormalities OnAbnormalitiesChanged?.Invoke(); } + private void HandleSyncedStunChanged(int oldValue, int newValue) + { + if (oldValue == newValue) + return; + + OnAbnormalitiesChanged?.Invoke(); + } + + private void HandleSyncedSilenceChanged(int oldValue, int newValue) + { + if (oldValue == newValue) + return; + + OnAbnormalitiesChanged?.Invoke(); + } + + private void HandleSyncedSlowChanged(float oldValue, float newValue) + { + if (Mathf.Approximately(oldValue, newValue)) + return; + + OnAbnormalitiesChanged?.Invoke(); + } + + /// + /// 사망 시 활성 이상 상태를 모두 제거합니다. + /// + private void HandleDeathStateChanged(bool dead) + { + if (!dead || !IsServer) + return; + + if (activeAbnormalities.Count == 0) + return; + + RemoveAllAbnormalities(); + Debug.Log($"[Abnormality] Cleared all abnormalities on death: {gameObject.name}"); + } + private AbnormalityData FindAbnormalityDataById(int instanceId) { var allData = Resources.FindObjectsOfTypeAll(); diff --git a/Assets/_Game/Scripts/InputSystem_Actions.cs b/Assets/_Game/Scripts/InputSystem_Actions.cs index ea11c7c0..cd21b577 100644 --- a/Assets/_Game/Scripts/InputSystem_Actions.cs +++ b/Assets/_Game/Scripts/InputSystem_Actions.cs @@ -217,6 +217,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable ""processors"": """", ""interactions"": """", ""initialStateCheck"": false + }, + { + ""name"": ""DebugHUD"", + ""type"": ""Button"", + ""id"": ""ae37625e-86d3-4579-8129-64ea49cf7e78"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false } ], ""bindings"": [ @@ -593,6 +602,17 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable ""action"": ""Evade"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""bb3c1259-8e98-4602-82f0-3fc4e8d74f0e"", + ""path"": ""/backquote"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""DebugHUD"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] }, @@ -1192,6 +1212,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable m_Player_Skill5 = m_Player.FindAction("Skill 5", throwIfNotFound: true); m_Player_Skill6 = m_Player.FindAction("Skill 6", throwIfNotFound: true); m_Player_Evade = m_Player.FindAction("Evade", throwIfNotFound: true); + m_Player_DebugHUD = m_Player.FindAction("DebugHUD", throwIfNotFound: true); // UI m_UI = asset.FindActionMap("UI", throwIfNotFound: true); m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); @@ -1299,6 +1320,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable private readonly InputAction m_Player_Skill5; private readonly InputAction m_Player_Skill6; private readonly InputAction m_Player_Evade; + private readonly InputAction m_Player_DebugHUD; /// /// Provides access to input actions defined in input action map "Player". /// @@ -1367,6 +1389,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable /// public InputAction @Evade => m_Wrapper.m_Player_Evade; /// + /// Provides access to the underlying input action "Player/DebugHUD". + /// + public InputAction @DebugHUD => m_Wrapper.m_Player_DebugHUD; + /// /// Provides access to the underlying input action map instance. /// public InputActionMap Get() { return m_Wrapper.m_Player; } @@ -1434,6 +1460,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable @Evade.started += instance.OnEvade; @Evade.performed += instance.OnEvade; @Evade.canceled += instance.OnEvade; + @DebugHUD.started += instance.OnDebugHUD; + @DebugHUD.performed += instance.OnDebugHUD; + @DebugHUD.canceled += instance.OnDebugHUD; } /// @@ -1487,6 +1516,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable @Evade.started -= instance.OnEvade; @Evade.performed -= instance.OnEvade; @Evade.canceled -= instance.OnEvade; + @DebugHUD.started -= instance.OnDebugHUD; + @DebugHUD.performed -= instance.OnDebugHUD; + @DebugHUD.canceled -= instance.OnDebugHUD; } /// @@ -1885,6 +1917,13 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable /// /// void OnEvade(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "DebugHUD" is either , or . + /// + /// + /// + /// + void OnDebugHUD(InputAction.CallbackContext context); } /// /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks. diff --git a/Assets/_Game/Scripts/InputSystem_Actions.inputactions b/Assets/_Game/Scripts/InputSystem_Actions.inputactions index 48d62b41..1e4a98e1 100644 --- a/Assets/_Game/Scripts/InputSystem_Actions.inputactions +++ b/Assets/_Game/Scripts/InputSystem_Actions.inputactions @@ -131,6 +131,15 @@ "processors": "", "interactions": "", "initialStateCheck": false + }, + { + "name": "DebugHUD", + "type": "Button", + "id": "ae37625e-86d3-4579-8129-64ea49cf7e78", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -507,6 +516,17 @@ "action": "Evade", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "bb3c1259-8e98-4602-82f0-3fc4e8d74f0e", + "path": "/backquote", + "interactions": "", + "processors": "", + "groups": "", + "action": "DebugHUD", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs new file mode 100644 index 00000000..6c009761 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs @@ -0,0 +1,442 @@ +using System; +using System.Collections.Generic; + +using UnityEngine; +using UnityEngine.InputSystem; + +using Unity.Netcode; + +using Colosseum.Abnormalities; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Colosseum.Player +{ + /// + /// 로컬 플레이어가 자신에게 이상상태를 적용/해제할 수 있는 디버그 HUD. + /// 이상상태 이름, 에셋 이름, 인덱스로 검색해 적용할 수 있습니다. + /// + [DisallowMultipleComponent] + public class PlayerAbnormalityDebugHUD : NetworkBehaviour + { + [Header("References")] + [Tooltip("이상상태 관리자")] + [SerializeField] private AbnormalityManager abnormalityManager; + + [Tooltip("플레이어 네트워크 상태")] + [SerializeField] private PlayerNetworkController networkController; + + [Header("Display")] + [Tooltip("시작 시 HUD 표시 여부")] + [SerializeField] private bool showOnStart = false; + + [Tooltip("로그 출력 여부")] + [SerializeField] private bool debugLogs = true; + + [Header("Catalog")] + [Tooltip("디버그 HUD에서 검색 가능한 이상상태 목록")] + [SerializeField] private List abnormalityCatalog = new List(); + + private Rect windowRect = new Rect(20f, 20f, 420f, 520f); + private Vector2 catalogScroll; + private string abnormalityInput = string.Empty; + private string statusMessage = "이상상태 이름, 에셋 이름, 인덱스를 입력하세요."; + private bool isVisible; + private InputSystem_Actions inputActions; + + private void Awake() + { + if (abnormalityManager == null) + abnormalityManager = GetComponent(); + + if (networkController == null) + networkController = GetComponent(); + } + + public override void OnNetworkSpawn() + { + if (!IsOwner || !ShouldEnableDebugHud()) + { + enabled = false; + return; + } + + isVisible = showOnStart; + RefreshCatalog(); + InitializeInputActions(); + + if (debugLogs) + { + Debug.Log("[AbnormalityDebugHUD] DebugHUD 액션으로 HUD를 열고, 이상상태 이름/에셋명/인덱스로 자신에게 적용할 수 있습니다."); + } + } + + public override void OnNetworkDespawn() + { + CleanupInputActions(); + } + + private void OnGUI() + { + if (!IsOwner || !isVisible || !ShouldEnableDebugHud()) + return; + + windowRect = GUI.Window(GetInstanceID(), windowRect, DrawWindow, "Abnormality Debug HUD"); + } + + private void DrawWindow(int windowId) + { + GUILayout.BeginVertical(); + + GUILayout.Label($"사망 상태: {(networkController != null && networkController.IsDead ? "Dead" : "Alive")}"); + GUILayout.Label("입력 예시: 기절 / Data_Abnormality_Player_Stun / 0"); + + GUI.SetNextControlName("AbnormalityInputField"); + abnormalityInput = GUILayout.TextField(abnormalityInput ?? string.Empty); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button("적용", GUILayout.Height(28f))) + { + ApplyFromInput(); + } + + if (GUILayout.Button("해제", GUILayout.Height(28f))) + { + RemoveFromInput(); + } + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button("모두 해제", GUILayout.Height(24f))) + { + if (abnormalityManager != null) + { + abnormalityManager.RemoveAllAbnormalities(); + SetStatus("활성 이상상태를 모두 해제했습니다."); + } + } + + if (GUILayout.Button("즉사", GUILayout.Height(24f))) + { + KillSelf(); + } + + if (GUILayout.Button("리스폰", GUILayout.Height(24f))) + { + RequestRespawnRpc(); + } + GUILayout.EndHorizontal(); + + GUILayout.Space(6f); + GUILayout.Label($"상태: {statusMessage}"); + GUILayout.Space(6f); + + GUILayout.Label("활성 이상상태"); + DrawActiveAbnormalities(); + + GUILayout.Space(6f); + GUILayout.Label("카탈로그"); + catalogScroll = GUILayout.BeginScrollView(catalogScroll, GUILayout.Height(220f)); + for (int i = 0; i < abnormalityCatalog.Count; i++) + { + AbnormalityData data = abnormalityCatalog[i]; + if (data == null) + continue; + + GUILayout.BeginHorizontal(); + GUILayout.Label($"[{i}] {data.abnormalityName} ({data.name})", GUILayout.Width(280f)); + if (GUILayout.Button("적용", GUILayout.Width(50f))) + { + ApplyAbnormality(data); + } + if (GUILayout.Button("해제", GUILayout.Width(50f))) + { + RemoveAbnormality(data); + } + GUILayout.EndHorizontal(); + } + GUILayout.EndScrollView(); + + GUILayout.EndVertical(); + GUI.DragWindow(new Rect(0f, 0f, 10000f, 20f)); + } + + private void OnEnable() + { + if (IsOwner && inputActions != null) + { + inputActions.Player.Enable(); + } + } + + private void OnDisable() + { + CleanupInputActions(); + } + + private void InitializeInputActions() + { + if (inputActions == null) + { + inputActions = new InputSystem_Actions(); + inputActions.Player.DebugHUD.performed += OnDebugHudPerformed; + } + + inputActions.Player.Enable(); + } + + private void CleanupInputActions() + { + if (inputActions != null) + { + inputActions.Player.Disable(); + } + } + + private void OnDebugHudPerformed(InputAction.CallbackContext context) + { + if (!IsOwner) + return; + + isVisible = !isVisible; + } + + private void DrawActiveAbnormalities() + { + if (abnormalityManager == null || abnormalityManager.ActiveAbnormalities.Count == 0) + { + GUILayout.Label("- 없음"); + return; + } + + for (int i = 0; i < abnormalityManager.ActiveAbnormalities.Count; i++) + { + var active = abnormalityManager.ActiveAbnormalities[i]; + if (active == null || active.Data == null) + continue; + + string durationText = active.Data.IsPermanent ? "영구" : $"{active.RemainingDuration:F1}s"; + GUILayout.Label($"- {active.Data.abnormalityName} / {durationText}"); + } + } + + private void ApplyFromInput() + { + if (!TryResolveAbnormality(abnormalityInput, out AbnormalityData data, out string message)) + { + SetStatus(message); + return; + } + + ApplyAbnormality(data); + } + + private void RemoveFromInput() + { + if (!TryResolveAbnormality(abnormalityInput, out AbnormalityData data, out string message)) + { + SetStatus(message); + return; + } + + RemoveAbnormality(data); + } + + private void ApplyAbnormality(AbnormalityData data) + { + if (data == null) + { + SetStatus("적용할 이상상태를 찾지 못했습니다."); + return; + } + + if (abnormalityManager == null) + { + SetStatus("AbnormalityManager 참조가 없습니다."); + return; + } + + abnormalityManager.ApplyAbnormality(data, gameObject); + SetStatus($"'{data.abnormalityName}' 적용 요청을 보냈습니다."); + } + + private void RemoveAbnormality(AbnormalityData data) + { + if (data == null) + { + SetStatus("해제할 이상상태를 찾지 못했습니다."); + return; + } + + if (abnormalityManager == null) + { + SetStatus("AbnormalityManager 참조가 없습니다."); + return; + } + + abnormalityManager.RemoveAbnormality(data); + SetStatus($"'{data.abnormalityName}' 해제 요청을 보냈습니다."); + } + + private bool TryResolveAbnormality(string input, out AbnormalityData resolved, out string message) + { + resolved = null; + message = string.Empty; + + string normalizedInput = NormalizeIdentifier(input); + if (string.IsNullOrWhiteSpace(normalizedInput)) + { + message = "이상상태 이름, 에셋 이름, 인덱스를 입력하세요."; + return false; + } + + if (int.TryParse(normalizedInput, out int index)) + { + if (index >= 0 && index < abnormalityCatalog.Count && abnormalityCatalog[index] != null) + { + resolved = abnormalityCatalog[index]; + return true; + } + + message = $"인덱스 {index} 에 해당하는 이상상태가 없습니다."; + return false; + } + + List partialMatches = new List(); + for (int i = 0; i < abnormalityCatalog.Count; i++) + { + AbnormalityData candidate = abnormalityCatalog[i]; + if (candidate == null) + continue; + + string normalizedName = NormalizeIdentifier(candidate.abnormalityName); + string normalizedAssetName = NormalizeIdentifier(candidate.name); + + if (normalizedInput == normalizedName || normalizedInput == normalizedAssetName) + { + resolved = candidate; + return true; + } + + if (normalizedName.Contains(normalizedInput) || normalizedAssetName.Contains(normalizedInput)) + { + partialMatches.Add(candidate); + } + } + + if (partialMatches.Count == 1) + { + resolved = partialMatches[0]; + return true; + } + + if (partialMatches.Count > 1) + { + message = BuildAmbiguousMessage(partialMatches); + return false; + } + + message = $"'{input}' 에 해당하는 이상상태를 찾지 못했습니다."; + return false; + } + + private string BuildAmbiguousMessage(List matches) + { + int previewCount = Mathf.Min(3, matches.Count); + List previewNames = new List(previewCount); + for (int i = 0; i < previewCount; i++) + { + AbnormalityData match = matches[i]; + previewNames.Add(match != null ? match.abnormalityName : "null"); + } + + string preview = string.Join(", ", previewNames); + if (matches.Count > previewCount) + { + preview += ", ..."; + } + + return $"여러 후보가 있습니다: {preview}"; + } + + private string NormalizeIdentifier(string value) + { + return string.IsNullOrWhiteSpace(value) + ? string.Empty + : value.Trim().Replace(" ", string.Empty).ToLowerInvariant(); + } + + private void SetStatus(string message) + { + statusMessage = message; + + if (debugLogs) + { + Debug.Log($"[AbnormalityDebugHUD] {message}"); + } + } + + private void KillSelf() + { + if (networkController == null) + { + SetStatus("PlayerNetworkController 참조가 없습니다."); + return; + } + + if (networkController.IsDead) + { + SetStatus("이미 사망한 상태입니다."); + return; + } + + networkController.TakeDamageRpc(networkController.Health + 1f); + SetStatus("즉사 요청을 보냈습니다."); + } + + [Rpc(SendTo.Server)] + private void RequestRespawnRpc() + { + if (networkController == null) + return; + + networkController.Respawn(); + } + + private bool ShouldEnableDebugHud() + { +#if UNITY_EDITOR + return true; +#else + return Debug.isDebugBuild; +#endif + } + + private void RefreshCatalog() + { + abnormalityCatalog.RemoveAll(data => data == null); + +#if UNITY_EDITOR + string[] guids = AssetDatabase.FindAssets("t:AbnormalityData", new[] { "Assets/_Game/Data/Abnormalities" }); + List loadedAssets = new List(guids.Length); + + for (int i = 0; i < guids.Length; i++) + { + string path = AssetDatabase.GUIDToAssetPath(guids[i]); + AbnormalityData data = AssetDatabase.LoadAssetAtPath(path); + if (data != null) + { + loadedAssets.Add(data); + } + } + + loadedAssets.Sort((left, right) => + string.Compare(left != null ? left.name : string.Empty, right != null ? right.name : string.Empty, StringComparison.OrdinalIgnoreCase)); + + abnormalityCatalog = loadedAssets; +#endif + } + } +} diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs.meta b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs.meta new file mode 100644 index 00000000..e1514970 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bea222c7cf052d949984b6c08b08e545 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs new file mode 100644 index 00000000..e1c12060 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs @@ -0,0 +1,226 @@ +using System.Collections; + +using UnityEngine; + +using Unity.Netcode; + +using Colosseum.Abnormalities; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace Colosseum.Player +{ + /// + /// 플레이어 이상상태와 행동 제어 연동을 자동 검증하는 디버그 러너. + /// 기절, 침묵, 사망, 리스폰 순으로 상태를 검사합니다. + /// + [DisallowMultipleComponent] + public class PlayerAbnormalityVerificationRunner : NetworkBehaviour + { + [Header("References")] + [SerializeField] private AbnormalityManager abnormalityManager; + [SerializeField] private PlayerActionState actionState; + [SerializeField] private PlayerNetworkController networkController; + + [Header("Test Data")] + [SerializeField] private AbnormalityData stunData; + [SerializeField] private AbnormalityData silenceData; + + [Header("Execution")] + [Tooltip("에디터 플레이 시작 시 자동 검증 실행")] + [SerializeField] private bool runOnStartInEditor = false; + + [Tooltip("각 검증 단계 사이 대기 시간")] + [Min(0.05f)] + [SerializeField] private float settleDelay = 0.2f; + + [Header("Result")] + [SerializeField] private bool isRunning; + [SerializeField] private bool lastRunPassed; + [SerializeField] private int totalChecks; + [SerializeField] private int failedChecks; + [TextArea(5, 12)] + [SerializeField] private string lastReport = string.Empty; + + private readonly System.Text.StringBuilder reportBuilder = new System.Text.StringBuilder(); + + public override void OnNetworkSpawn() + { + if (!IsOwner || !ShouldEnableRunner()) + { + enabled = false; + return; + } + + ResolveReferences(); + LoadDefaultAssetsIfNeeded(); + + if (runOnStartInEditor) + { + StartCoroutine(RunVerificationRoutine()); + } + } + + [ContextMenu("Run Verification")] + public void RunVerification() + { + if (!Application.isPlaying || !IsOwner || isRunning) + return; + + StartCoroutine(RunVerificationRoutine()); + } + + private IEnumerator RunVerificationRoutine() + { + if (isRunning) + yield break; + + ResolveReferences(); + LoadDefaultAssetsIfNeeded(); + + if (abnormalityManager == null || actionState == null || networkController == null || stunData == null || silenceData == null) + { + Debug.LogWarning("[AbnormalityVerification] Missing references or test data."); + yield break; + } + + isRunning = true; + totalChecks = 0; + failedChecks = 0; + lastRunPassed = false; + reportBuilder.Clear(); + AppendLine("=== Player Abnormality Verification Start ==="); + + abnormalityManager.RemoveAllAbnormalities(); + RequestRespawnRpc(); + yield return new WaitForSeconds(settleDelay); + + Verify("초기 상태: 사망 아님", !networkController.IsDead); + Verify("초기 상태: 이동 가능", actionState.CanMove); + Verify("초기 상태: 스킬 사용 가능", actionState.CanUseSkills); + + abnormalityManager.ApplyAbnormality(stunData, gameObject); + yield return new WaitForSeconds(settleDelay); + + Verify("기절 적용: IsStunned", abnormalityManager.IsStunned); + Verify("기절 적용: ActionState.IsStunned", actionState.IsStunned); + Verify("기절 적용: 이동 불가", !actionState.CanMove); + Verify("기절 적용: 점프 불가", !actionState.CanJump); + Verify("기절 적용: 스킬 사용 불가", !actionState.CanUseSkills); + Verify("기절 적용: 이동속도 0", Mathf.Approximately(actionState.MoveSpeedMultiplier, 0f)); + + yield return new WaitForSeconds(stunData.duration + settleDelay); + + Verify("기절 해제: IsStunned false", !abnormalityManager.IsStunned); + Verify("기절 해제: 이동 가능 복구", actionState.CanMove); + Verify("기절 해제: 스킬 사용 가능 복구", actionState.CanUseSkills); + + abnormalityManager.ApplyAbnormality(silenceData, gameObject); + yield return new WaitForSeconds(settleDelay); + + Verify("침묵 적용: IsSilenced", abnormalityManager.IsSilenced); + Verify("침묵 적용: 이동 가능 유지", actionState.CanMove); + Verify("침묵 적용: 점프 가능 유지", actionState.CanJump); + Verify("침묵 적용: 스킬 사용 불가", !actionState.CanUseSkills); + + yield return new WaitForSeconds(silenceData.duration + settleDelay); + + Verify("침묵 해제: IsSilenced false", !abnormalityManager.IsSilenced); + Verify("침묵 해제: 스킬 사용 가능 복구", actionState.CanUseSkills); + + abnormalityManager.ApplyAbnormality(stunData, gameObject); + yield return new WaitForSeconds(settleDelay); + networkController.TakeDamageRpc(networkController.Health + 1f); + yield return new WaitForSeconds(settleDelay); + + Verify("사망 처리: IsDead", networkController.IsDead); + Verify("사망 처리: 입력 불가", !actionState.CanReceiveInput); + Verify("사망 처리: 이동 불가", !actionState.CanMove); + Verify("사망 처리: 스킬 사용 불가", !actionState.CanUseSkills); + Verify("사망 처리: 활성 이상상태 제거", abnormalityManager.ActiveAbnormalities.Count == 0); + + RequestRespawnRpc(); + yield return new WaitForSeconds(settleDelay); + + Verify("리스폰: IsDead false", !networkController.IsDead); + Verify("리스폰: 활성 이상상태 없음", abnormalityManager.ActiveAbnormalities.Count == 0); + Verify("리스폰: 이동 가능", actionState.CanMove); + Verify("리스폰: 스킬 사용 가능", actionState.CanUseSkills); + + lastRunPassed = failedChecks == 0; + AppendLine(lastRunPassed + ? "=== Verification Passed ===" + : $"=== Verification Failed: {failedChecks}/{totalChecks} checks failed ==="); + + lastReport = reportBuilder.ToString(); + Debug.Log(lastReport); + isRunning = false; + } + + [Rpc(SendTo.Server)] + private void RequestRespawnRpc() + { + if (networkController == null) + return; + + networkController.Respawn(); + } + + private void ResolveReferences() + { + if (abnormalityManager == null) + abnormalityManager = GetComponent(); + if (actionState == null) + actionState = GetComponent(); + if (networkController == null) + networkController = GetComponent(); + } + + private void LoadDefaultAssetsIfNeeded() + { +#if UNITY_EDITOR + if (stunData == null) + { + stunData = AssetDatabase.LoadAssetAtPath("Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Stun.asset"); + } + + if (silenceData == null) + { + silenceData = AssetDatabase.LoadAssetAtPath("Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Silence.asset"); + } +#endif + } + + private void Verify(string label, bool condition) + { + totalChecks++; + if (!condition) + { + failedChecks++; + } + + AppendLine($"{(condition ? "[PASS]" : "[FAIL]")} {label}"); + } + + private void AppendLine(string text) + { + if (reportBuilder.Length > 0) + { + reportBuilder.AppendLine(); + } + + reportBuilder.Append(text); + } + + private bool ShouldEnableRunner() + { +#if UNITY_EDITOR + return true; +#else + return Debug.isDebugBuild; +#endif + } + } +} diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs.meta b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs.meta new file mode 100644 index 00000000..5d80a169 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 43d5dfd0218bf3445b8678dae42350d6 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs b/Assets/_Game/Scripts/Player/PlayerActionState.cs new file mode 100644 index 00000000..adab2451 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs @@ -0,0 +1,104 @@ +using UnityEngine; + +using Colosseum.Abnormalities; +using Colosseum.Skills; + +namespace Colosseum.Player +{ + /// + /// 플레이어의 전투 행동 가능 여부를 한 곳에서 판정하는 상태 관리자. + /// 이동, 점프, 스킬 사용 가능 여부를 사망/이상 상태/관전/시전 상태와 연동합니다. + /// + [DisallowMultipleComponent] + public class PlayerActionState : MonoBehaviour + { + [Header("References")] + [Tooltip("플레이어 네트워크 상태")] + [SerializeField] private PlayerNetworkController networkController; + + [Tooltip("이상 상태 관리자")] + [SerializeField] private AbnormalityManager abnormalityManager; + + [Tooltip("스킬 실행 관리자")] + [SerializeField] private SkillController skillController; + + [Tooltip("관전 관리자")] + [SerializeField] private PlayerSpectator spectator; + + /// + /// 사망 상태 여부 + /// + public bool IsDead => networkController != null && networkController.IsDead; + + /// + /// 기절 상태 여부 + /// + public bool IsStunned => abnormalityManager != null && abnormalityManager.IsStunned; + + /// + /// 침묵 상태 여부 + /// + public bool IsSilenced => abnormalityManager != null && abnormalityManager.IsSilenced; + + /// + /// 관전 상태 여부 + /// + public bool IsSpectating => spectator != null && spectator.IsSpectating; + + /// + /// 스킬 애니메이션 재생 중 여부 + /// + public bool IsCastingSkill => skillController != null && skillController.IsPlayingAnimation; + + /// + /// 입력을 받아도 되는지 여부 + /// + public bool CanReceiveInput => !IsDead && !IsSpectating; + + /// + /// 플레이어가 직접 이동 입력을 사용할 수 있는지 여부 + /// + public bool CanMove => CanReceiveInput && !IsStunned && !IsCastingSkill; + + /// + /// 점프 가능 여부 + /// + public bool CanJump => CanMove; + + /// + /// 스킬 사용 가능 여부 + /// + public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !IsCastingSkill; + + /// + /// 회피 사용 가능 여부 + /// + public bool CanEvade => CanUseSkills; + + /// + /// 현재 이동 속도 배율 + /// + public float MoveSpeedMultiplier + { + get + { + if (!CanReceiveInput || IsStunned) + return 0f; + + return abnormalityManager != null ? abnormalityManager.MoveSpeedMultiplier : 1f; + } + } + + private void Awake() + { + if (networkController == null) + networkController = GetComponent(); + if (abnormalityManager == null) + abnormalityManager = GetComponent(); + if (skillController == null) + skillController = GetComponent(); + if (spectator == null) + spectator = GetComponentInChildren(); + } + } +} diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs.meta b/Assets/_Game/Scripts/Player/PlayerActionState.cs.meta new file mode 100644 index 00000000..e96fb721 --- /dev/null +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 01f7f1d2e296d2046b2977e94b7269fe \ No newline at end of file diff --git a/Assets/_Game/Scripts/Player/PlayerMovement.cs b/Assets/_Game/Scripts/Player/PlayerMovement.cs index 4c4b52c7..03b406f5 100644 --- a/Assets/_Game/Scripts/Player/PlayerMovement.cs +++ b/Assets/_Game/Scripts/Player/PlayerMovement.cs @@ -12,6 +12,7 @@ namespace Colosseum.Player /// - 서버: NetworkVariable을 읽어 CharacterController 구동 → NetworkTransform으로 동기화 /// [RequireComponent(typeof(CharacterController))] + [RequireComponent(typeof(PlayerActionState))] public class PlayerMovement : NetworkBehaviour { [Header("Movement Settings")] @@ -25,6 +26,7 @@ namespace Colosseum.Player [Header("References")] [SerializeField] private SkillController skillController; [SerializeField] private Animator animator; + [SerializeField] private PlayerActionState actionState; private CharacterController characterController; private Vector3 velocity; @@ -43,7 +45,7 @@ namespace Colosseum.Player private Vector3 blockedDirection; private readonly Collider[] overlapBuffer = new Collider[8]; - public float CurrentMoveSpeed => netMoveInput.Value.magnitude * moveSpeed; + public float CurrentMoveSpeed => netMoveInput.Value.magnitude * moveSpeed * GetMoveSpeedMultiplier(); public bool IsGrounded => characterController != null ? characterController.isGrounded : false; public bool IsJumping => isJumping; @@ -62,6 +64,8 @@ namespace Colosseum.Player skillController = GetComponent(); if (animator == null) animator = GetComponentInChildren(); + if (actionState == null) + actionState = GetOrCreateActionState(); SetSpawnPosition(); } @@ -69,6 +73,9 @@ namespace Colosseum.Player // 오너: 입력 및 카메라 초기화 if (IsOwner) { + if (actionState == null) + actionState = GetOrCreateActionState(); + InitializeInputActions(); SetupCamera(); } @@ -144,6 +151,8 @@ namespace Colosseum.Player private void OnJumpPerformed(InputAction.CallbackContext context) { if (!IsOwner) return; + if (actionState != null && !actionState.CanJump) return; + JumpRequestRpc(); } @@ -153,6 +162,9 @@ namespace Colosseum.Player [Rpc(SendTo.Server)] private void JumpRequestRpc() { + if (actionState != null && !actionState.CanJump) + return; + if (!isJumping && characterController != null && characterController.isGrounded) Jump(); } @@ -187,6 +199,14 @@ namespace Colosseum.Player /// private void UpdateNetworkInput() { + if (actionState != null && !actionState.CanMove) + { + if (netMoveInput.Value != Vector2.zero) + netMoveInput.Value = Vector2.zero; + + return; + } + Vector3 dir = new Vector3(moveInput.x, 0f, moveInput.y); if (dir.sqrMagnitude > 0.001f) dir = TransformDirectionByCamera(dir).normalized; @@ -251,10 +271,14 @@ namespace Colosseum.Player if (moveDirection.sqrMagnitude > 0.001f) moveDirection.Normalize(); + if (actionState != null && !actionState.CanMove) + moveDirection = Vector3.zero; + if (blockedDirection != Vector3.zero && Vector3.Dot(moveDirection, blockedDirection) > 0f) moveDirection = Vector3.zero; - characterController.Move((moveDirection * moveSpeed + velocity) * Time.deltaTime); + float actualMoveSpeed = moveSpeed * GetMoveSpeedMultiplier(); + characterController.Move((moveDirection * actualMoveSpeed + velocity) * Time.deltaTime); if (moveDirection != Vector3.zero) { @@ -291,6 +315,23 @@ namespace Colosseum.Player return right * direction.x + forward * direction.z; } + private float GetMoveSpeedMultiplier() + { + if (actionState == null) + return 1f; + + return actionState.MoveSpeedMultiplier; + } + + private PlayerActionState GetOrCreateActionState() + { + var foundState = GetComponent(); + if (foundState != null) + return foundState; + + return gameObject.AddComponent(); + } + /// /// 루트 모션 처리 (서버 전용 — NetworkTransform으로 동기화) /// diff --git a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs index ff6bef8f..97355845 100644 --- a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs +++ b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs @@ -1,8 +1,11 @@ using System; using UnityEngine; using Unity.Netcode; + +using Colosseum.Abnormalities; using Colosseum.Stats; using Colosseum.Combat; +using Colosseum.Skills; namespace Colosseum.Player { @@ -33,6 +36,7 @@ namespace Colosseum.Player // 사망 이벤트 public event Action OnDeath; public event Action OnDeathStateChanged; // (isDead) + public event Action OnRespawned; // IDamageable 구현 public float CurrentHealth => currentHealth.Value; @@ -105,6 +109,8 @@ namespace Colosseum.Player [Rpc(SendTo.Server)] public void UseManaRpc(float amount) { + if (isDead.Value) return; + currentMana.Value = Mathf.Max(0f, currentMana.Value - amount); } @@ -114,6 +120,8 @@ namespace Colosseum.Player [Rpc(SendTo.Server)] public void RestoreHealthRpc(float amount) { + if (isDead.Value) return; + currentHealth.Value = Mathf.Min(MaxHealth, currentHealth.Value + amount); } @@ -123,6 +131,8 @@ namespace Colosseum.Player [Rpc(SendTo.Server)] public void RestoreManaRpc(float amount) { + if (isDead.Value) return; + currentMana.Value = Mathf.Min(MaxMana, currentMana.Value + amount); } @@ -148,6 +158,13 @@ namespace Colosseum.Player isDead.Value = true; + // 사망 시 활성 이상 상태를 정리해 리스폰 시 잔존하지 않게 합니다. + var abnormalityManager = GetComponent(); + if (abnormalityManager != null) + { + abnormalityManager.RemoveAllAbnormalities(); + } + // 이동 비활성화 var movement = GetComponent(); if (movement != null) @@ -162,6 +179,13 @@ namespace Colosseum.Player skillInput.enabled = false; } + // 실행 중인 스킬 즉시 취소 + var skillController = GetComponent(); + if (skillController != null) + { + skillController.CancelSkill(); + } + // 모든 클라이언트에서 사망 애니메이션 재생 PlayDeathAnimationRpc(); @@ -178,6 +202,12 @@ namespace Colosseum.Player { if (!IsServer) return; + var abnormalityManager = GetComponent(); + if (abnormalityManager != null) + { + abnormalityManager.RemoveAllAbnormalities(); + } + isDead.Value = false; currentHealth.Value = MaxHealth; currentMana.Value = MaxMana; @@ -203,6 +233,8 @@ namespace Colosseum.Player animator.Rebind(); } + OnRespawned?.Invoke(this); + Debug.Log($"[Player] Player {OwnerClientId} respawned!"); } diff --git a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs index f44bc44f..7c84a444 100644 --- a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs +++ b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs @@ -11,6 +11,7 @@ namespace Colosseum.Player /// 플레이어 스킬 입력 처리. /// 논타겟 방식: 입력 시 즉시 스킬 시전 /// + [RequireComponent(typeof(PlayerActionState))] public class PlayerSkillInput : NetworkBehaviour { [Header("Skill Slots")] @@ -24,6 +25,8 @@ namespace Colosseum.Player [SerializeField] private PlayerNetworkController networkController; [Tooltip("WeaponEquipment (없으면 자동 검색)")] [SerializeField] private WeaponEquipment weaponEquipment; + [Tooltip("행동 상태 관리자 (없으면 자동 검색)")] + [SerializeField] private PlayerActionState actionState; private InputSystem_Actions inputActions; @@ -61,36 +64,54 @@ namespace Colosseum.Player weaponEquipment = GetComponent(); } + if (actionState == null) + { + actionState = GetOrCreateActionState(); + } + InitializeInputActions(); } private void InitializeInputActions() { - inputActions = new InputSystem_Actions(); - inputActions.Player.Enable(); + if (inputActions == null) + { + inputActions = new InputSystem_Actions(); + inputActions.Player.Skill1.performed += OnSkill1Performed; + inputActions.Player.Skill2.performed += OnSkill2Performed; + inputActions.Player.Skill3.performed += OnSkill3Performed; + inputActions.Player.Skill4.performed += OnSkill4Performed; + inputActions.Player.Skill5.performed += OnSkill5Performed; + inputActions.Player.Skill6.performed += OnSkill6Performed; + inputActions.Player.Evade.performed += OnEvadePerformed; + } - // 스킬 액션 콜백 등록 - inputActions.Player.Skill1.performed += _ => OnSkillInput(0); - inputActions.Player.Skill2.performed += _ => OnSkillInput(1); - inputActions.Player.Skill3.performed += _ => OnSkillInput(2); - inputActions.Player.Skill4.performed += _ => OnSkillInput(3); - inputActions.Player.Skill5.performed += _ => OnSkillInput(4); - inputActions.Player.Skill6.performed += _ => OnSkillInput(5); - inputActions.Player.Evade.performed += _ => OnSkillInput(6); + inputActions.Player.Enable(); } public override void OnNetworkDespawn() + { + CleanupInputActions(); + } + + private void OnDisable() + { + CleanupInputActions(); + } + + private void OnEnable() + { + if (IsOwner && inputActions != null) + { + inputActions.Player.Enable(); + } + } + + private void CleanupInputActions() { if (inputActions != null) { - inputActions.Player.Skill1.performed -= _ => OnSkillInput(0); - inputActions.Player.Skill2.performed -= _ => OnSkillInput(1); - inputActions.Player.Skill3.performed -= _ => OnSkillInput(2); - inputActions.Player.Skill4.performed -= _ => OnSkillInput(3); - inputActions.Player.Skill5.performed -= _ => OnSkillInput(4); - inputActions.Player.Skill6.performed -= _ => OnSkillInput(5); - inputActions.Player.Evade.performed -= _ => OnSkillInput(6); - inputActions.Disable(); + inputActions.Player.Disable(); } } @@ -110,7 +131,7 @@ namespace Colosseum.Player } // 사망 상태 체크 - if (networkController != null && networkController.IsDead) + if (actionState != null && !actionState.CanUseSkills) return; // 로컬 체크 (빠른 피드백용) @@ -152,7 +173,7 @@ namespace Colosseum.Player // 서버에서 다시 검증 // 사망 상태 체크 - if (networkController != null && networkController.IsDead) + if (actionState != null && !actionState.CanUseSkills) return; if (skillController.IsExecutingSkill || skillController.IsOnCooldown(skill)) @@ -242,7 +263,33 @@ namespace Colosseum.Player SkillData skill = GetSkill(slotIndex); if (skill == null) return false; + if (actionState != null && !actionState.CanUseSkills) + return false; + return !skillController.IsOnCooldown(skill) && !skillController.IsExecutingSkill; } + + private void OnSkill1Performed(InputAction.CallbackContext context) => OnSkillInput(0); + + private void OnSkill2Performed(InputAction.CallbackContext context) => OnSkillInput(1); + + private void OnSkill3Performed(InputAction.CallbackContext context) => OnSkillInput(2); + + private void OnSkill4Performed(InputAction.CallbackContext context) => OnSkillInput(3); + + private void OnSkill5Performed(InputAction.CallbackContext context) => OnSkillInput(4); + + private void OnSkill6Performed(InputAction.CallbackContext context) => OnSkillInput(5); + + private void OnEvadePerformed(InputAction.CallbackContext context) => OnSkillInput(6); + + private PlayerActionState GetOrCreateActionState() + { + var foundState = GetComponent(); + if (foundState != null) + return foundState; + + return gameObject.AddComponent(); + } } } diff --git a/Assets/_Game/Scripts/UI/ConnectionUI.cs b/Assets/_Game/Scripts/UI/ConnectionUI.cs index a0000399..20005fd1 100644 --- a/Assets/_Game/Scripts/UI/ConnectionUI.cs +++ b/Assets/_Game/Scripts/UI/ConnectionUI.cs @@ -13,6 +13,10 @@ namespace Colosseum.UI [SerializeField] private string ipAddress = "127.0.0.1"; [SerializeField] private ushort port = 7777; + [Header("Editor Test")] + [Tooltip("에디터 Play Mode 진입 시 자동으로 Host를 시작합니다")] + [SerializeField] private bool autoStartHostInEditor = false; + [Header("Status (Read Only)")] [SerializeField, Tooltip("현재 연결 상태")] private string connectionStatus = "Disconnected"; @@ -26,6 +30,13 @@ namespace Colosseum.UI private void Start() { UpdateTransportSettings(); + + #if UNITY_EDITOR + if (autoStartHostInEditor && NetworkManager.Singleton != null && !NetworkManager.Singleton.IsListening) + { + StartHost(); + } + #endif } private void Update() From c7165a7ef4b68883a084aeca35f8c82d053ac0d7 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 18:23:32 +0900 Subject: [PATCH 02/11] =?UTF-8?q?chore:=20=EC=9E=94=EC=97=AC=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=EC=82=AC=ED=95=AD=20=EC=A0=95=EB=A6=AC=20=EB=B0=8F=20?= =?UTF-8?q?=EC=8A=A4=ED=82=AC=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .mcp.json | 9 ++---- Assets/Scenes/Test.unity | 3 +- .../Data/Skills/Data_Skill_Player_돌진.asset | 25 +++++++++++++++++ .../Skills/Data_Skill_Player_돌진.asset.meta | 8 ++++++ .../Skills/Data_Skill_Player_찌르기.asset | 25 +++++++++++++++++ .../Data_Skill_Player_찌르기.asset.meta | 8 ++++++ .../Skills/Data_Skill_Player_회전베기.asset | 25 +++++++++++++++++ .../Data_Skill_Player_회전베기.asset.meta | 8 ++++++ ...ata_SkillEffect_Player_돌진_0_데미지.asset | 28 +++++++++++++++++++ ...killEffect_Player_돌진_0_데미지.asset.meta | 8 ++++++ ...a_SkillEffect_Player_찌르기_0_데미지.asset | 28 +++++++++++++++++++ ...llEffect_Player_찌르기_0_데미지.asset.meta | 8 ++++++ ...SkillEffect_Player_회전베기_0_데미지.asset | 28 +++++++++++++++++++ ...Effect_Player_회전베기_0_데미지.asset.meta | 8 ++++++ Assets/_Recovery.meta | 8 ------ Colosseum.slnx | 2 +- 16 files changed, 212 insertions(+), 17 deletions(-) create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset.meta create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset.meta create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset.meta delete mode 100644 Assets/_Recovery.meta diff --git a/.mcp.json b/.mcp.json index ab1c063e..70011302 100644 --- a/.mcp.json +++ b/.mcp.json @@ -1,8 +1,3 @@ { - "mcpServers": { - "unityMCP": { - "type": "http", - "url": "http://localhost:8080/mcp" - } - } -} + "mcpServers": {} +} \ No newline at end of file diff --git a/Assets/Scenes/Test.unity b/Assets/Scenes/Test.unity index 3cfb1735..58253de0 100644 --- a/Assets/Scenes/Test.unity +++ b/Assets/Scenes/Test.unity @@ -4738,7 +4738,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.ConnectionUI ipAddress: 127.0.0.1 - port: 7777 + port: 7788 + autoStartHostInEditor: 0 connectionStatus: Disconnected --- !u!4 &854739757 stripped Transform: diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset new file mode 100644 index 00000000..dc1fe95c --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} + m_Name: "Data_Skill_Player_\uB3CC\uC9C4" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData + skillName: "\uB3CC\uC9C4" + description: + icon: {fileID: 0} + skillClip: {fileID: 0} + endClip: {fileID: 0} + useRootMotion: 1 + ignoreRootMotionY: 1 + cooldown: 3 + manaCost: 15 + effects: + - {fileID: 11400000, guid: e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset.meta new file mode 100644 index 00000000..f6dca7de --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset new file mode 100644 index 00000000..b20c9f0e --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} + m_Name: "Data_Skill_Player_\uCC0C\uB974\uAE30" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData + skillName: "\uCC0C\uB974\uAE30" + description: + icon: {fileID: 0} + skillClip: {fileID: -8689311932429934276, guid: ac0adc4c7f982fe4d82eac9c2267f0c6, type: 3} + endClip: {fileID: 0} + useRootMotion: 1 + ignoreRootMotionY: 1 + cooldown: 1 + manaCost: 5 + effects: + - {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset.meta new file mode 100644 index 00000000..699acd8c --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset new file mode 100644 index 00000000..4137dbd3 --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} + m_Name: "Data_Skill_Player_\uD68C\uC804\uBCA0\uAE30" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData + skillName: "\uD68C\uC804\uBCA0\uAE30" + description: + icon: {fileID: 0} + skillClip: {fileID: 0} + endClip: {fileID: 0} + useRootMotion: 0 + ignoreRootMotionY: 1 + cooldown: 2 + manaCost: 10 + effects: + - {fileID: 11400000, guid: c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset.meta new file mode 100644 index 00000000..c2aba7ff --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset new file mode 100644 index 00000000..f7a6e95f --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} + m_Name: "Data_SkillEffect_Player_\uB3CC\uC9C4_0_\uB370\uBBF8\uC9C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 2 + fanOriginDistance: 0 + fanRadius: 3 + fanHalfAngle: 45 + baseDamage: 25 + damageType: 0 + statScaling: 1 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset.meta new file mode 100644 index 00000000..46ab361e --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_돌진_0_데미지.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset new file mode 100644 index 00000000..83eb6e98 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} + m_Name: "Data_SkillEffect_Player_\uCC0C\uB974\uAE30_0_\uB370\uBBF8\uC9C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect + targetType: 1 + targetTeam: 0 + areaCenter: 1 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 2 + fanOriginDistance: 0 + fanRadius: 3 + fanHalfAngle: 45 + baseDamage: 15 + damageType: 0 + statScaling: 1 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset.meta new file mode 100644 index 00000000..8e781ee2 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset new file mode 100644 index 00000000..3121761d --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} + m_Name: "Data_SkillEffect_Player_\uD68C\uC804\uBCA0\uAE30_0_\uB370\uBBF8\uC9C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 3.5 + fanOriginDistance: 0 + fanRadius: 3 + fanHalfAngle: 45 + baseDamage: 20 + damageType: 0 + statScaling: 1 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset.meta new file mode 100644 index 00000000..2be6d4bf --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_회전베기_0_데미지.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Recovery.meta b/Assets/_Recovery.meta deleted file mode 100644 index 83e5a7b9..00000000 --- a/Assets/_Recovery.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 17da755853936a94db44f06b9cd36ca4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Colosseum.slnx b/Colosseum.slnx index aa2e6115..6286efd2 100644 --- a/Colosseum.slnx +++ b/Colosseum.slnx @@ -1,9 +1,9 @@  + - From 1adfd61d972908009c32a56a59c6c163ef1ff492 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 18:34:02 +0900 Subject: [PATCH 03/11] =?UTF-8?q?feat:=20=EC=8A=A4=ED=82=AC=EB=B3=84=20?= =?UTF-8?q?=ED=96=89=EB=8F=99=20=EC=A0=9C=ED=95=9C=20=EC=A0=95=EC=B1=85=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Game/Scripts/Player/PlayerActionState.cs | 45 +++++++++++++++++-- .../_Game/Scripts/Player/PlayerSkillInput.cs | 24 ++++++++-- Assets/_Game/Scripts/Skills/SkillData.cs | 14 ++++++ 3 files changed, 75 insertions(+), 8 deletions(-) diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs b/Assets/_Game/Scripts/Player/PlayerActionState.cs index adab2451..803cc40f 100644 --- a/Assets/_Game/Scripts/Player/PlayerActionState.cs +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs @@ -50,6 +50,11 @@ namespace Colosseum.Player /// public bool IsCastingSkill => skillController != null && skillController.IsPlayingAnimation; + /// + /// 현재 시전 중인 스킬 + /// + public SkillData CurrentSkill => skillController != null ? skillController.CurrentSkill : null; + /// /// 입력을 받아도 되는지 여부 /// @@ -58,22 +63,22 @@ namespace Colosseum.Player /// /// 플레이어가 직접 이동 입력을 사용할 수 있는지 여부 /// - public bool CanMove => CanReceiveInput && !IsStunned && !IsCastingSkill; + public bool CanMove => CanReceiveInput && !IsStunned && !BlocksMovementForCurrentSkill(); /// /// 점프 가능 여부 /// - public bool CanJump => CanMove; + public bool CanJump => CanReceiveInput && !IsStunned && !BlocksJumpForCurrentSkill(); /// /// 스킬 사용 가능 여부 /// - public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !IsCastingSkill; + public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksSkillUseForCurrentSkill(); /// /// 회피 사용 가능 여부 /// - public bool CanEvade => CanUseSkills; + public bool CanEvade => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksEvadeForCurrentSkill(); /// /// 현재 이동 속도 배율 @@ -100,5 +105,37 @@ namespace Colosseum.Player if (spectator == null) spectator = GetComponentInChildren(); } + + private bool BlocksMovementForCurrentSkill() + { + if (!IsCastingSkill) + return false; + + return CurrentSkill == null || CurrentSkill.BlockMovementWhileCasting; + } + + private bool BlocksJumpForCurrentSkill() + { + if (!IsCastingSkill) + return false; + + return CurrentSkill == null || CurrentSkill.BlockJumpWhileCasting; + } + + private bool BlocksSkillUseForCurrentSkill() + { + if (!IsCastingSkill) + return false; + + return CurrentSkill == null || CurrentSkill.BlockOtherSkillsWhileCasting; + } + + private bool BlocksEvadeForCurrentSkill() + { + if (!IsCastingSkill) + return false; + + return CurrentSkill == null || CurrentSkill.BlockEvadeWhileCasting; + } } } diff --git a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs index 7c84a444..28a625cb 100644 --- a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs +++ b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs @@ -123,6 +123,8 @@ namespace Colosseum.Player if (slotIndex < 0 || slotIndex >= skillSlots.Length) return; + bool isEvadeSlot = slotIndex == skillSlots.Length - 1; + SkillData skill = skillSlots[slotIndex]; if (skill == null) { @@ -131,8 +133,14 @@ namespace Colosseum.Player } // 사망 상태 체크 - if (actionState != null && !actionState.CanUseSkills) - return; + if (actionState != null) + { + if (isEvadeSlot && !actionState.CanEvade) + return; + + if (!isEvadeSlot && !actionState.CanUseSkills) + return; + } // 로컬 체크 (빠른 피드백용) if (skillController.IsExecutingSkill) @@ -168,13 +176,21 @@ namespace Colosseum.Player if (slotIndex < 0 || slotIndex >= skillSlots.Length) return; + bool isEvadeSlot = slotIndex == skillSlots.Length - 1; + SkillData skill = skillSlots[slotIndex]; if (skill == null) return; // 서버에서 다시 검증 // 사망 상태 체크 - if (actionState != null && !actionState.CanUseSkills) - return; + if (actionState != null) + { + if (isEvadeSlot && !actionState.CanEvade) + return; + + if (!isEvadeSlot && !actionState.CanUseSkills) + return; + } if (skillController.IsExecutingSkill || skillController.IsOnCooldown(skill)) return; diff --git a/Assets/_Game/Scripts/Skills/SkillData.cs b/Assets/_Game/Scripts/Skills/SkillData.cs index ffb200d7..7857f12a 100644 --- a/Assets/_Game/Scripts/Skills/SkillData.cs +++ b/Assets/_Game/Scripts/Skills/SkillData.cs @@ -31,6 +31,16 @@ namespace Colosseum.Skills [Tooltip("스킬 시전 시 대상 위치로 점프 이동 (UseRootMotion + IgnoreRootMotionY=false 필요)")] [SerializeField] private bool jumpToTarget = false; + [Header("행동 제한")] + [Tooltip("시전 중 이동 입력 차단 여부")] + [SerializeField] private bool blockMovementWhileCasting = true; + [Tooltip("시전 중 점프 입력 차단 여부")] + [SerializeField] private bool blockJumpWhileCasting = true; + [Tooltip("시전 중 다른 스킬 입력 차단 여부")] + [SerializeField] private bool blockOtherSkillsWhileCasting = true; + [Tooltip("시전 중 회피 입력 차단 여부")] + [SerializeField] private bool blockEvadeWhileCasting = true; + [Header("쿨타임 & 비용")] [Min(0f)] [SerializeField] private float cooldown = 1f; [Min(0f)] [SerializeField] private float manaCost = 0f; @@ -51,6 +61,10 @@ namespace Colosseum.Skills public bool UseRootMotion => useRootMotion; public bool IgnoreRootMotionY => ignoreRootMotionY; public bool JumpToTarget => jumpToTarget; + public bool BlockMovementWhileCasting => blockMovementWhileCasting; + public bool BlockJumpWhileCasting => blockJumpWhileCasting; + public bool BlockOtherSkillsWhileCasting => blockOtherSkillsWhileCasting; + public bool BlockEvadeWhileCasting => blockEvadeWhileCasting; public IReadOnlyList Effects => effects; } } From 9f27d87c0ec91f32970bd8b755720276962e1d88 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 18:51:41 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20=ED=9A=8C=ED=94=BC=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=EC=99=80=20=EC=8A=A4=ED=82=AC=20=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=ED=8C=90=EC=A0=95=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Skills/Data_Skill_Player_구르기.asset | 5 ++ .../Player/Prefab_Player_Default.prefab | 2 + .../Player/PlayerAbnormalityDebugHUD.cs | 4 + .../PlayerAbnormalityVerificationRunner.cs | 76 +++++++++++++++++++ .../_Game/Scripts/Player/PlayerActionState.cs | 27 ++++++- .../_Game/Scripts/Player/PlayerSkillInput.cs | 27 ++----- Assets/_Game/Scripts/Skills/SkillData.cs | 3 + 7 files changed, 118 insertions(+), 26 deletions(-) diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset index bd268336..88434715 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset @@ -19,6 +19,11 @@ MonoBehaviour: endClip: {fileID: 0} useRootMotion: 1 ignoreRootMotionY: 1 + isEvadeSkill: 1 + blockMovementWhileCasting: 1 + blockJumpWhileCasting: 1 + blockOtherSkillsWhileCasting: 1 + blockEvadeWhileCasting: 1 cooldown: 10 manaCost: 0 effects: [] diff --git a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab index c9596450..6d63be85 100644 --- a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab +++ b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab @@ -453,6 +453,8 @@ MonoBehaviour: abnormalityManager: {fileID: 0} actionState: {fileID: 0} networkController: {fileID: 0} + skillInput: {fileID: 0} + skillController: {fileID: 0} stunData: {fileID: 0} silenceData: {fileID: 0} runOnStartInEditor: 0 diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs index 6c009761..929fe005 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs @@ -91,6 +91,10 @@ namespace Colosseum.Player GUILayout.BeginVertical(); GUILayout.Label($"사망 상태: {(networkController != null && networkController.IsDead ? "Dead" : "Alive")}"); + if (TryGetComponent(out var actionState)) + { + GUILayout.Label($"회피 상태: {(actionState.IsEvading ? "Evading" : "Idle")} / 이동:{actionState.CanMove} / 스킬:{actionState.CanUseSkills}"); + } GUILayout.Label("입력 예시: 기절 / Data_Abnormality_Player_Stun / 0"); GUI.SetNextControlName("AbnormalityInputField"); diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs index e1c12060..fe1070a0 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using UnityEngine; @@ -5,6 +6,7 @@ using UnityEngine; using Unity.Netcode; using Colosseum.Abnormalities; +using Colosseum.Skills; #if UNITY_EDITOR using UnityEditor; @@ -23,6 +25,8 @@ namespace Colosseum.Player [SerializeField] private AbnormalityManager abnormalityManager; [SerializeField] private PlayerActionState actionState; [SerializeField] private PlayerNetworkController networkController; + [SerializeField] private PlayerSkillInput skillInput; + [SerializeField] private SkillController skillController; [Header("Test Data")] [SerializeField] private AbnormalityData stunData; @@ -100,6 +104,9 @@ namespace Colosseum.Player Verify("초기 상태: 사망 아님", !networkController.IsDead); Verify("초기 상태: 이동 가능", actionState.CanMove); Verify("초기 상태: 스킬 사용 가능", actionState.CanUseSkills); + Verify("초기 상태: 회피 상태 아님", !actionState.IsEvading); + + yield return RunEvadeVerification(); abnormalityManager.ApplyAbnormality(stunData, gameObject); yield return new WaitForSeconds(settleDelay); @@ -176,6 +183,10 @@ namespace Colosseum.Player actionState = GetComponent(); if (networkController == null) networkController = GetComponent(); + if (skillInput == null) + skillInput = GetComponent(); + if (skillController == null) + skillController = GetComponent(); } private void LoadDefaultAssetsIfNeeded() @@ -222,5 +233,70 @@ namespace Colosseum.Player return Debug.isDebugBuild; #endif } + + private IEnumerator RunEvadeVerification() + { + SkillData evadeSkill = skillInput != null ? skillInput.GetSkill(6) : null; + if (evadeSkill == null) + { + AppendLine("[SKIP] 회피 검증: 회피 슬롯 스킬이 없습니다."); + yield break; + } + + if (skillController == null || !skillController.ExecuteSkill(evadeSkill)) + { + Verify("회피 검증: 스킬 실행 성공", false); + yield break; + } + + yield return new WaitForSeconds(settleDelay); + + Verify("회피 적용: IsEvading", actionState.IsEvading); + Verify("회피 적용: 이동 불가", !actionState.CanMove); + Verify("회피 적용: 점프 불가", !actionState.CanJump); + Verify("회피 적용: 일반 스킬 사용 불가", !actionState.CanUseSkills); + Verify("회피 적용: 회피 스킬 연속 사용 불가", !actionState.CanStartSkill(evadeSkill)); + + if (silenceData != null) + { + abnormalityManager.ApplyAbnormality(silenceData, gameObject); + yield return WaitForConditionOrTimeout(() => actionState.IsSilenced, settleDelay + 0.5f); + + Verify("회피 중 침묵 적용: IsSilenced", actionState.IsSilenced); + Verify("회피 중 침묵 적용: 회피 상태 유지", actionState.IsEvading); + Verify("회피 중 침묵 적용: 회피 스킬 신규 사용 불가", !actionState.CanStartSkill(evadeSkill)); + + abnormalityManager.RemoveAbnormality(silenceData); + yield return new WaitForSeconds(settleDelay); + } + + yield return WaitForConditionOrTimeout(() => !actionState.IsEvading, GetSkillDuration(evadeSkill) + 1.5f); + + Verify("회피 해제: IsEvading false", !actionState.IsEvading); + Verify("회피 해제: 이동 가능 복구", actionState.CanMove); + Verify("회피 해제: 스킬 사용 가능 복구", actionState.CanUseSkills); + Verify("회피 해제: 회피 스킬 재사용 가능 복구", actionState.CanStartSkill(evadeSkill)); + } + + private float GetSkillDuration(SkillData skill) + { + if (skill == null || skill.SkillClip == null) + return settleDelay; + + return Mathf.Max(settleDelay, skill.SkillClip.length / Mathf.Max(0.1f, skill.AnimationSpeed)); + } + + private IEnumerator WaitForConditionOrTimeout(Func predicate, float timeout) + { + float elapsed = 0f; + while (elapsed < timeout) + { + if (predicate()) + yield break; + + elapsed += Time.deltaTime; + yield return null; + } + } } } diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs b/Assets/_Game/Scripts/Player/PlayerActionState.cs index 803cc40f..a147a1db 100644 --- a/Assets/_Game/Scripts/Player/PlayerActionState.cs +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs @@ -55,6 +55,12 @@ namespace Colosseum.Player /// public SkillData CurrentSkill => skillController != null ? skillController.CurrentSkill : null; + /// + /// 현재 시전 중인 스킬이 회피 스킬일 때의 회피 상태 여부. + /// 침묵은 회피 상태 자체를 끊지 않으며, 회피 스킬의 신규 사용만 막습니다. + /// + public bool IsEvading => IsCastingSkill && CurrentSkill != null && CurrentSkill.IsEvadeSkill; + /// /// 입력을 받아도 되는지 여부 /// @@ -71,14 +77,27 @@ namespace Colosseum.Player public bool CanJump => CanReceiveInput && !IsStunned && !BlocksJumpForCurrentSkill(); /// - /// 스킬 사용 가능 여부 + /// 일반 스킬 시작 가능 여부 /// - public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksSkillUseForCurrentSkill(); + public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !IsEvading && !BlocksSkillUseForCurrentSkill(); /// - /// 회피 사용 가능 여부 + /// 특정 스킬의 시작 가능 여부. + /// 회피 스킬도 일반 스킬과 같은 시작 판정을 사용하되, 현재 시전 중인 스킬의 회피 차단 정책을 따릅니다. /// - public bool CanEvade => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksEvadeForCurrentSkill(); + public bool CanStartSkill(SkillData skill) + { + if (skill == null) + return false; + + if (!CanReceiveInput || IsStunned || IsSilenced || IsEvading) + return false; + + if (skill.IsEvadeSkill) + return !BlocksEvadeForCurrentSkill(); + + return !BlocksSkillUseForCurrentSkill(); + } /// /// 현재 이동 속도 배율 diff --git a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs index 28a625cb..14caeb33 100644 --- a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs +++ b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs @@ -123,8 +123,6 @@ namespace Colosseum.Player if (slotIndex < 0 || slotIndex >= skillSlots.Length) return; - bool isEvadeSlot = slotIndex == skillSlots.Length - 1; - SkillData skill = skillSlots[slotIndex]; if (skill == null) { @@ -133,14 +131,8 @@ namespace Colosseum.Player } // 사망 상태 체크 - if (actionState != null) - { - if (isEvadeSlot && !actionState.CanEvade) - return; - - if (!isEvadeSlot && !actionState.CanUseSkills) - return; - } + if (actionState != null && !actionState.CanStartSkill(skill)) + return; // 로컬 체크 (빠른 피드백용) if (skillController.IsExecutingSkill) @@ -176,21 +168,12 @@ namespace Colosseum.Player if (slotIndex < 0 || slotIndex >= skillSlots.Length) return; - bool isEvadeSlot = slotIndex == skillSlots.Length - 1; - SkillData skill = skillSlots[slotIndex]; if (skill == null) return; // 서버에서 다시 검증 - // 사망 상태 체크 - if (actionState != null) - { - if (isEvadeSlot && !actionState.CanEvade) - return; - - if (!isEvadeSlot && !actionState.CanUseSkills) - return; - } + if (actionState != null && !actionState.CanStartSkill(skill)) + return; if (skillController.IsExecutingSkill || skillController.IsOnCooldown(skill)) return; @@ -279,7 +262,7 @@ namespace Colosseum.Player SkillData skill = GetSkill(slotIndex); if (skill == null) return false; - if (actionState != null && !actionState.CanUseSkills) + if (actionState != null && !actionState.CanStartSkill(skill)) return false; return !skillController.IsOnCooldown(skill) && !skillController.IsExecutingSkill; diff --git a/Assets/_Game/Scripts/Skills/SkillData.cs b/Assets/_Game/Scripts/Skills/SkillData.cs index 7857f12a..5d4531a7 100644 --- a/Assets/_Game/Scripts/Skills/SkillData.cs +++ b/Assets/_Game/Scripts/Skills/SkillData.cs @@ -32,6 +32,8 @@ namespace Colosseum.Skills [SerializeField] private bool jumpToTarget = false; [Header("행동 제한")] + [Tooltip("이 스킬을 회피 상태로 취급할지 여부")] + [SerializeField] private bool isEvadeSkill = false; [Tooltip("시전 중 이동 입력 차단 여부")] [SerializeField] private bool blockMovementWhileCasting = true; [Tooltip("시전 중 점프 입력 차단 여부")] @@ -61,6 +63,7 @@ namespace Colosseum.Skills public bool UseRootMotion => useRootMotion; public bool IgnoreRootMotionY => ignoreRootMotionY; public bool JumpToTarget => jumpToTarget; + public bool IsEvadeSkill => isEvadeSkill; public bool BlockMovementWhileCasting => blockMovementWhileCasting; public bool BlockJumpWhileCasting => blockJumpWhileCasting; public bool BlockOtherSkillsWhileCasting => blockOtherSkillsWhileCasting; From 2faf41a0bb0c9ba1bbba63335d89a81494ce047d Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 19:16:32 +0900 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20=EB=AC=B4=EC=A0=81=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=EC=83=81=ED=83=9C=20=EA=B8=B0=EB=B0=98=20=EA=B5=AC?= =?UTF-8?q?=EB=A5=B4=EA=B8=B0=20=EC=8A=A4=ED=82=AC=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data_Abnormality_Player_Invincible.asset | 24 +++++++++++ ...a_Abnormality_Player_Invincible.asset.meta | 8 ++++ .../Skills/Data_Skill_Player_구르기.asset | 5 +-- .../Data_SkillEffect_Player_무적.asset | 26 ++++++++++++ .../Data_SkillEffect_Player_무적.asset.meta | 8 ++++ .../Player/Prefab_Player_Default.prefab | 1 + .../Scripts/Abnormalities/AbnormalityData.cs | 3 +- .../Abnormalities/AbnormalityManager.cs | 28 +++++++++++++ .../Player/PlayerAbnormalityDebugHUD.cs | 2 +- .../PlayerAbnormalityVerificationRunner.cs | 42 +++++++++---------- .../_Game/Scripts/Player/PlayerActionState.cs | 22 +++------- .../Scripts/Player/PlayerNetworkController.cs | 19 +++++++-- .../_Game/Scripts/Player/PlayerSkillInput.cs | 2 +- .../_Game/Scripts/Skills/SkillController.cs | 25 +++++++++++ Assets/_Game/Scripts/Skills/SkillData.cs | 6 --- 15 files changed, 166 insertions(+), 55 deletions(-) create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset create mode 100644 Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset.meta diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset new file mode 100644 index 00000000..5dc1f2c8 --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3} + m_Name: Data_Abnormality_Player_Invincible + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData + abnormalityName: "\uBB34\uC801" + icon: {fileID: 0} + duration: 1 + level: 1 + isDebuff: 0 + statModifiers: [] + periodicInterval: 0 + periodicValue: 0 + controlType: 4 + slowMultiplier: 0.5 diff --git a/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset.meta b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset.meta new file mode 100644 index 00000000..455973fa --- /dev/null +++ b/Assets/_Game/Data/Abnormalities/Data_Abnormality_Player_Invincible.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a1f2b3c4d5e6f708192a3b4c5d6e7f8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset index 88434715..3b05143a 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset @@ -19,11 +19,10 @@ MonoBehaviour: endClip: {fileID: 0} useRootMotion: 1 ignoreRootMotionY: 1 - isEvadeSkill: 1 blockMovementWhileCasting: 1 blockJumpWhileCasting: 1 blockOtherSkillsWhileCasting: 1 - blockEvadeWhileCasting: 1 cooldown: 10 manaCost: 0 - effects: [] + effects: + - {fileID: 11400000, guid: 8b2c3d4e5f60718293a4b5c6d7e8f901, type: 2} diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset new file mode 100644 index 00000000..bfc5588a --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf750718c64c4bd48af905d2927351de, type: 3} + m_Name: "Data_SkillEffect_Player_\uBB34\uC801" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.AbnormalityEffect + targetType: 0 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 0 + areaRadius: 3 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + abnormalityData: {fileID: 11400000, guid: 7a1f2b3c4d5e6f708192a3b4c5d6e7f8, type: 2} diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset.meta new file mode 100644 index 00000000..2c02d66c --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_무적.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b2c3d4e5f60718293a4b5c6d7e8f901 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab index 6d63be85..432cb02b 100644 --- a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab +++ b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab @@ -203,6 +203,7 @@ MonoBehaviour: m_EditorClassIdentifier: Colosseum.Game::Colosseum.Player.PlayerNetworkController ShowTopMostFoldoutHeaderGroup: 1 characterStats: {fileID: -5132198055668300151} + abnormalityManager: {fileID: 0} --- !u!114 &8606252901290138286 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/_Game/Scripts/Abnormalities/AbnormalityData.cs b/Assets/_Game/Scripts/Abnormalities/AbnormalityData.cs index 54504f42..28382ccd 100644 --- a/Assets/_Game/Scripts/Abnormalities/AbnormalityData.cs +++ b/Assets/_Game/Scripts/Abnormalities/AbnormalityData.cs @@ -13,7 +13,8 @@ namespace Colosseum.Abnormalities None, // 제어 효과 없음 Stun, // 기절 (이동, 스킬 사용 불가) Silence, // 침묵 (스킬 사용 불가) - Slow // 둔화 (이동 속도 감소) + Slow, // 둔화 (이동 속도 감소) + Invincible // 무적 (대미지 무시) } /// diff --git a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs index 53180f10..534cbcf0 100644 --- a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs +++ b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs @@ -26,11 +26,13 @@ namespace Colosseum.Abnormalities // 제어 효과 상태 private int stunCount; private int silenceCount; + private int invincibleCount; private float slowMultiplier = 1f; // 클라이언트 판정용 제어 효과 동기화 변수 private NetworkVariable syncedStunCount = new NetworkVariable(0); private NetworkVariable syncedSilenceCount = new NetworkVariable(0); + private NetworkVariable syncedInvincibleCount = new NetworkVariable(0); private NetworkVariable syncedSlowMultiplier = new NetworkVariable(1f); // 네트워크 동기화용 데이터 @@ -46,6 +48,11 @@ namespace Colosseum.Abnormalities /// public bool IsSilenced => GetCurrentSilenceCount() > 0; + /// + /// 무적 상태 여부 + /// + public bool IsInvincible => GetCurrentInvincibleCount() > 0; + /// /// 이동 속도 배율 (1.0 = 기본, 0.5 = 50% 감소) /// @@ -110,6 +117,7 @@ namespace Colosseum.Abnormalities syncedStunCount.OnValueChanged += HandleSyncedStunChanged; syncedSilenceCount.OnValueChanged += HandleSyncedSilenceChanged; + syncedInvincibleCount.OnValueChanged += HandleSyncedInvincibleChanged; syncedSlowMultiplier.OnValueChanged += HandleSyncedSlowChanged; if (networkController != null) @@ -128,6 +136,7 @@ namespace Colosseum.Abnormalities syncedAbnormalities.OnListChanged -= OnSyncedAbnormalitiesChanged; syncedStunCount.OnValueChanged -= HandleSyncedStunChanged; syncedSilenceCount.OnValueChanged -= HandleSyncedSilenceChanged; + syncedInvincibleCount.OnValueChanged -= HandleSyncedInvincibleChanged; syncedSlowMultiplier.OnValueChanged -= HandleSyncedSlowChanged; if (networkController != null) @@ -418,6 +427,10 @@ namespace Colosseum.Abnormalities case ControlType.Slow: slowMultiplier = Mathf.Min(slowMultiplier, data.slowMultiplier); break; + + case ControlType.Invincible: + invincibleCount++; + break; } SyncControlEffects(); @@ -438,6 +451,10 @@ namespace Colosseum.Abnormalities case ControlType.Slow: RecalculateSlowMultiplier(); break; + + case ControlType.Invincible: + invincibleCount = Mathf.Max(0, invincibleCount - 1); + break; } SyncControlEffects(); @@ -460,6 +477,8 @@ namespace Colosseum.Abnormalities private int GetCurrentSilenceCount() => IsServer ? silenceCount : syncedSilenceCount.Value; + private int GetCurrentInvincibleCount() => IsServer ? invincibleCount : syncedInvincibleCount.Value; + private float GetCurrentSlowMultiplier() => IsServer ? slowMultiplier : syncedSlowMultiplier.Value; private void SyncControlEffects() @@ -469,6 +488,7 @@ namespace Colosseum.Abnormalities syncedStunCount.Value = stunCount; syncedSilenceCount.Value = silenceCount; + syncedInvincibleCount.Value = invincibleCount; syncedSlowMultiplier.Value = slowMultiplier; } @@ -541,6 +561,14 @@ namespace Colosseum.Abnormalities OnAbnormalitiesChanged?.Invoke(); } + private void HandleSyncedInvincibleChanged(int oldValue, int newValue) + { + if (oldValue == newValue) + return; + + OnAbnormalitiesChanged?.Invoke(); + } + /// /// 사망 시 활성 이상 상태를 모두 제거합니다. /// diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs index 929fe005..b32c0521 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs @@ -93,7 +93,7 @@ namespace Colosseum.Player GUILayout.Label($"사망 상태: {(networkController != null && networkController.IsDead ? "Dead" : "Alive")}"); if (TryGetComponent(out var actionState)) { - GUILayout.Label($"회피 상태: {(actionState.IsEvading ? "Evading" : "Idle")} / 이동:{actionState.CanMove} / 스킬:{actionState.CanUseSkills}"); + GUILayout.Label($"무적 상태: {(actionState.IsDamageImmune ? "Immune" : "Normal")} / 이동:{actionState.CanMove} / 스킬:{actionState.CanUseSkills}"); } GUILayout.Label("입력 예시: 기절 / Data_Abnormality_Player_Stun / 0"); diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs index fe1070a0..2d05cd77 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs @@ -104,9 +104,9 @@ namespace Colosseum.Player Verify("초기 상태: 사망 아님", !networkController.IsDead); Verify("초기 상태: 이동 가능", actionState.CanMove); Verify("초기 상태: 스킬 사용 가능", actionState.CanUseSkills); - Verify("초기 상태: 회피 상태 아님", !actionState.IsEvading); + Verify("초기 상태: 무적 상태 아님", !actionState.IsDamageImmune); - yield return RunEvadeVerification(); + yield return RunInvincibilitySkillVerification(); abnormalityManager.ApplyAbnormality(stunData, gameObject); yield return new WaitForSeconds(settleDelay); @@ -234,48 +234,46 @@ namespace Colosseum.Player #endif } - private IEnumerator RunEvadeVerification() + private IEnumerator RunInvincibilitySkillVerification() { - SkillData evadeSkill = skillInput != null ? skillInput.GetSkill(6) : null; - if (evadeSkill == null) + SkillData invincibilitySkill = skillInput != null ? skillInput.GetSkill(6) : null; + if (invincibilitySkill == null) { - AppendLine("[SKIP] 회피 검증: 회피 슬롯 스킬이 없습니다."); + AppendLine("[SKIP] 무적 스킬 검증: 7번 슬롯 스킬이 없습니다."); yield break; } - if (skillController == null || !skillController.ExecuteSkill(evadeSkill)) + if (skillController == null || !skillController.ExecuteSkill(invincibilitySkill)) { - Verify("회피 검증: 스킬 실행 성공", false); + Verify("무적 스킬 검증: 스킬 실행 성공", false); yield break; } + yield return WaitForConditionOrTimeout(() => actionState.IsDamageImmune, GetSkillDuration(invincibilitySkill) + 0.5f); + + float healthBeforeDamage = networkController.Health; + + Verify("무적 적용: IsDamageImmune", actionState.IsDamageImmune); + networkController.TakeDamageRpc(15f); yield return new WaitForSeconds(settleDelay); - - Verify("회피 적용: IsEvading", actionState.IsEvading); - Verify("회피 적용: 이동 불가", !actionState.CanMove); - Verify("회피 적용: 점프 불가", !actionState.CanJump); - Verify("회피 적용: 일반 스킬 사용 불가", !actionState.CanUseSkills); - Verify("회피 적용: 회피 스킬 연속 사용 불가", !actionState.CanStartSkill(evadeSkill)); + Verify("무적 적용: 대미지 무시", Mathf.Approximately(networkController.Health, healthBeforeDamage)); if (silenceData != null) { abnormalityManager.ApplyAbnormality(silenceData, gameObject); yield return WaitForConditionOrTimeout(() => actionState.IsSilenced, settleDelay + 0.5f); - Verify("회피 중 침묵 적용: IsSilenced", actionState.IsSilenced); - Verify("회피 중 침묵 적용: 회피 상태 유지", actionState.IsEvading); - Verify("회피 중 침묵 적용: 회피 스킬 신규 사용 불가", !actionState.CanStartSkill(evadeSkill)); + Verify("무적 중 침묵 적용: IsSilenced", actionState.IsSilenced); + Verify("무적 중 침묵 적용: 무적 상태 유지", actionState.IsDamageImmune); + Verify("무적 중 침묵 적용: 스킬 신규 사용 불가", !actionState.CanStartSkill(invincibilitySkill)); abnormalityManager.RemoveAbnormality(silenceData); yield return new WaitForSeconds(settleDelay); } - yield return WaitForConditionOrTimeout(() => !actionState.IsEvading, GetSkillDuration(evadeSkill) + 1.5f); + yield return WaitForConditionOrTimeout(() => !actionState.IsDamageImmune, GetSkillDuration(invincibilitySkill) + 1.5f); - Verify("회피 해제: IsEvading false", !actionState.IsEvading); - Verify("회피 해제: 이동 가능 복구", actionState.CanMove); - Verify("회피 해제: 스킬 사용 가능 복구", actionState.CanUseSkills); - Verify("회피 해제: 회피 스킬 재사용 가능 복구", actionState.CanStartSkill(evadeSkill)); + Verify("무적 해제: IsDamageImmune false", !actionState.IsDamageImmune); } private float GetSkillDuration(SkillData skill) diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs b/Assets/_Game/Scripts/Player/PlayerActionState.cs index a147a1db..c10a4dbb 100644 --- a/Assets/_Game/Scripts/Player/PlayerActionState.cs +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs @@ -56,10 +56,9 @@ namespace Colosseum.Player public SkillData CurrentSkill => skillController != null ? skillController.CurrentSkill : null; /// - /// 현재 시전 중인 스킬이 회피 스킬일 때의 회피 상태 여부. - /// 침묵은 회피 상태 자체를 끊지 않으며, 회피 스킬의 신규 사용만 막습니다. + /// 무적 이상상태 여부 /// - public bool IsEvading => IsCastingSkill && CurrentSkill != null && CurrentSkill.IsEvadeSkill; + public bool IsDamageImmune => abnormalityManager != null && abnormalityManager.IsInvincible; /// /// 입력을 받아도 되는지 여부 @@ -79,23 +78,20 @@ namespace Colosseum.Player /// /// 일반 스킬 시작 가능 여부 /// - public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !IsEvading && !BlocksSkillUseForCurrentSkill(); + public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksSkillUseForCurrentSkill(); /// /// 특정 스킬의 시작 가능 여부. - /// 회피 스킬도 일반 스킬과 같은 시작 판정을 사용하되, 현재 시전 중인 스킬의 회피 차단 정책을 따릅니다. + /// 스킬 이름과 무관하게 동일한 시작 규칙을 사용합니다. /// public bool CanStartSkill(SkillData skill) { if (skill == null) return false; - if (!CanReceiveInput || IsStunned || IsSilenced || IsEvading) + if (!CanReceiveInput || IsStunned || IsSilenced) return false; - if (skill.IsEvadeSkill) - return !BlocksEvadeForCurrentSkill(); - return !BlocksSkillUseForCurrentSkill(); } @@ -148,13 +144,5 @@ namespace Colosseum.Player return CurrentSkill == null || CurrentSkill.BlockOtherSkillsWhileCasting; } - - private bool BlocksEvadeForCurrentSkill() - { - if (!IsCastingSkill) - return false; - - return CurrentSkill == null || CurrentSkill.BlockEvadeWhileCasting; - } } } diff --git a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs index 97355845..b43072f8 100644 --- a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs +++ b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs @@ -18,6 +18,9 @@ namespace Colosseum.Player [Tooltip("CharacterStats 컴포넌트 (없으면 자동 검색)")] [SerializeField] private CharacterStats characterStats; + [Tooltip("이상상태 관리자 (없으면 자동 검색)")] + [SerializeField] private AbnormalityManager abnormalityManager; + // 네트워크 동기화 변수 private NetworkVariable currentHealth = new NetworkVariable(100f); private NetworkVariable currentMana = new NetworkVariable(50f); @@ -50,6 +53,11 @@ namespace Colosseum.Player characterStats = GetComponent(); } + if (abnormalityManager == null) + { + abnormalityManager = GetComponent(); + } + // 네트워크 변수 변경 콜백 등록 currentHealth.OnValueChanged += HandleHealthChanged; currentMana.OnValueChanged += HandleManaChanged; @@ -93,7 +101,7 @@ namespace Colosseum.Player [Rpc(SendTo.Server)] public void TakeDamageRpc(float damage) { - if (isDead.Value) return; + if (isDead.Value || IsDamageImmune()) return; currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage); @@ -159,7 +167,6 @@ namespace Colosseum.Player isDead.Value = true; // 사망 시 활성 이상 상태를 정리해 리스폰 시 잔존하지 않게 합니다. - var abnormalityManager = GetComponent(); if (abnormalityManager != null) { abnormalityManager.RemoveAllAbnormalities(); @@ -202,7 +209,6 @@ namespace Colosseum.Player { if (!IsServer) return; - var abnormalityManager = GetComponent(); if (abnormalityManager != null) { abnormalityManager.RemoveAllAbnormalities(); @@ -244,7 +250,7 @@ namespace Colosseum.Player /// public float TakeDamage(float damage, object source = null) { - if (!IsServer || isDead.Value) return 0f; + if (!IsServer || isDead.Value || IsDamageImmune()) return 0f; float actualDamage = Mathf.Min(damage, currentHealth.Value); currentHealth.Value = Mathf.Max(0f, currentHealth.Value - damage); @@ -269,6 +275,11 @@ namespace Colosseum.Player return actualHeal; } + + private bool IsDamageImmune() + { + return abnormalityManager != null && abnormalityManager.IsInvincible; + } #endregion } } diff --git a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs index 14caeb33..45cb17ef 100644 --- a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs +++ b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs @@ -15,7 +15,7 @@ namespace Colosseum.Player public class PlayerSkillInput : NetworkBehaviour { [Header("Skill Slots")] - [Tooltip("각 슬롯에 등록할 스킬 데이터 (6개 + 긴급회피)")] + [Tooltip("각 슬롯에 등록할 스킬 데이터 (6개 + 추가 슬롯)")] [SerializeField] private SkillData[] skillSlots = new SkillData[7]; [Header("References")] diff --git a/Assets/_Game/Scripts/Skills/SkillController.cs b/Assets/_Game/Scripts/Skills/SkillController.cs index 7acfbad7..1ef622c3 100644 --- a/Assets/_Game/Scripts/Skills/SkillController.cs +++ b/Assets/_Game/Scripts/Skills/SkillController.cs @@ -148,9 +148,34 @@ namespace Colosseum.Skills PlaySkillClip(skill.SkillClip); } + TriggerImmediateSelfEffectsIfNeeded(skill); + return true; } + /// + /// 애니메이션 이벤트가 없는 자기 자신 대상 효과는 시전 즉시 발동합니다. + /// 버프/무적 같은 자기 강화 스킬이 이벤트 누락으로 동작하지 않는 상황을 막기 위한 보정입니다. + /// + private void TriggerImmediateSelfEffectsIfNeeded(SkillData skill) + { + if (skill == null || skill.Effects == null || skill.Effects.Count == 0) + return; + + if (skill.SkillClip != null && skill.SkillClip.events != null && skill.SkillClip.events.Length > 0) + return; + + for (int i = 0; i < skill.Effects.Count; i++) + { + SkillEffect effect = skill.Effects[i]; + if (effect == null || effect.TargetType != TargetType.Self) + continue; + + if (debugMode) Debug.Log($"[Skill] Immediate self effect: {effect.name} (index {i})"); + effect.ExecuteOnCast(gameObject); + } + } + /// /// 스킬 클립으로 Override Controller 생성 후 재생 /// diff --git a/Assets/_Game/Scripts/Skills/SkillData.cs b/Assets/_Game/Scripts/Skills/SkillData.cs index 5d4531a7..3f12c162 100644 --- a/Assets/_Game/Scripts/Skills/SkillData.cs +++ b/Assets/_Game/Scripts/Skills/SkillData.cs @@ -32,16 +32,12 @@ namespace Colosseum.Skills [SerializeField] private bool jumpToTarget = false; [Header("행동 제한")] - [Tooltip("이 스킬을 회피 상태로 취급할지 여부")] - [SerializeField] private bool isEvadeSkill = false; [Tooltip("시전 중 이동 입력 차단 여부")] [SerializeField] private bool blockMovementWhileCasting = true; [Tooltip("시전 중 점프 입력 차단 여부")] [SerializeField] private bool blockJumpWhileCasting = true; [Tooltip("시전 중 다른 스킬 입력 차단 여부")] [SerializeField] private bool blockOtherSkillsWhileCasting = true; - [Tooltip("시전 중 회피 입력 차단 여부")] - [SerializeField] private bool blockEvadeWhileCasting = true; [Header("쿨타임 & 비용")] [Min(0f)] [SerializeField] private float cooldown = 1f; @@ -63,11 +59,9 @@ namespace Colosseum.Skills public bool UseRootMotion => useRootMotion; public bool IgnoreRootMotionY => ignoreRootMotionY; public bool JumpToTarget => jumpToTarget; - public bool IsEvadeSkill => isEvadeSkill; public bool BlockMovementWhileCasting => blockMovementWhileCasting; public bool BlockJumpWhileCasting => blockJumpWhileCasting; public bool BlockOtherSkillsWhileCasting => blockOtherSkillsWhileCasting; - public bool BlockEvadeWhileCasting => blockEvadeWhileCasting; public IReadOnlyList Effects => effects; } } From 1cb46e1d8d7c31f053439c1f3c30af4d35090557 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 20:43:57 +0900 Subject: [PATCH 06/11] feat: add enemy threat targeting system --- .../Actions/FindTargetAction.cs | 12 + .../Actions/SetTargetInRangeAction.cs | 12 + .../_Game/Scripts/Editor/BossEnemyEditor.cs | 36 +++ Assets/_Game/Scripts/Enemy/EnemyBase.cs | 295 ++++++++++++++++++ 4 files changed, 355 insertions(+) diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/FindTargetAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/FindTargetAction.cs index de614bed..401661a4 100644 --- a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/FindTargetAction.cs +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/FindTargetAction.cs @@ -4,6 +4,7 @@ using UnityEngine; using Action = Unity.Behavior.Action; using Unity.Properties; using Colosseum.Combat; +using Colosseum.Enemy; [Serializable, GeneratePropertyBag] [NodeDescription(name: "FindTarget", story: "[타겟] 탐색", category: "Action", id: "bb947540549026f3c5625c6d19213311")] @@ -30,6 +31,17 @@ public partial class FindTargetAction : Action return Status.Failure; } + EnemyBase enemy = GameObject.GetComponent(); + if (enemy != null && enemy.UseThreatSystem) + { + GameObject threatTarget = enemy.GetHighestThreatTarget(Target?.Value, Tag.Value); + if (threatTarget != null) + { + Target.Value = threatTarget; + return Status.Success; + } + } + // 사망하지 않은 타겟 찾기 foreach (GameObject candidate in candidates) { diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SetTargetInRangeAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SetTargetInRangeAction.cs index 18aa4d19..88dea309 100644 --- a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SetTargetInRangeAction.cs +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SetTargetInRangeAction.cs @@ -4,6 +4,7 @@ using UnityEngine; using Action = Unity.Behavior.Action; using Unity.Properties; using Colosseum.Combat; +using Colosseum.Enemy; [Serializable, GeneratePropertyBag] [NodeDescription(name: "SetTargetInRange", story: "[Range] 내에 [Tag] 있는지 확인", category: "Action", id: "93b7a5d823a58618d5371c01ef894948")] @@ -33,6 +34,17 @@ public partial class SetTargetInRangeAction : Action return Status.Failure; } + EnemyBase enemy = GameObject.GetComponent(); + if (enemy != null && enemy.UseThreatSystem) + { + GameObject threatTarget = enemy.GetHighestThreatTarget(Target?.Value, Tag.Value, Range.Value); + if (threatTarget != null) + { + Target.Value = threatTarget; + return Status.Success; + } + } + // 가장 가까운 살아있는 타겟 찾기 GameObject nearestTarget = null; float nearestDistance = Range.Value; // Range 내에서만 검색 diff --git a/Assets/_Game/Scripts/Editor/BossEnemyEditor.cs b/Assets/_Game/Scripts/Editor/BossEnemyEditor.cs index 42b8e458..c1ccfe4d 100644 --- a/Assets/_Game/Scripts/Editor/BossEnemyEditor.cs +++ b/Assets/_Game/Scripts/Editor/BossEnemyEditor.cs @@ -14,6 +14,7 @@ namespace Colosseum.Editor { private BossEnemy boss; private bool showPhaseDetails = true; + private bool showThreatInfo = true; private bool showDebugTools = true; private int selectedPhaseIndex = 0; @@ -45,6 +46,11 @@ namespace Colosseum.Editor EditorGUILayout.Space(10); + // 위협 정보 + DrawThreatInfo(); + + EditorGUILayout.Space(10); + // 디버그 도구 DrawDebugTools(); } @@ -136,6 +142,36 @@ namespace Colosseum.Editor EditorGUI.indentLevel--; } + /// + /// 위협 정보 표시 + /// + private void DrawThreatInfo() + { + showThreatInfo = EditorGUILayout.Foldout(showThreatInfo, "위협 정보", true); + + if (!showThreatInfo) + return; + + EditorGUI.indentLevel++; + + if (!boss.UseThreatSystem) + { + EditorGUILayout.HelpBox("위협 시스템이 비활성화되어 있습니다.", MessageType.Info); + EditorGUI.indentLevel--; + return; + } + + EditorGUILayout.LabelField("위협 테이블", EditorStyles.boldLabel); + EditorGUILayout.TextArea(boss.GetThreatDebugSummary(), GUILayout.MinHeight(70f)); + + if (GUILayout.Button("위협 초기화")) + { + boss.ClearAllThreat(); + } + + EditorGUI.indentLevel--; + } + /// /// 디버그 도구 표시 /// diff --git a/Assets/_Game/Scripts/Enemy/EnemyBase.cs b/Assets/_Game/Scripts/Enemy/EnemyBase.cs index 387503f3..fc8ad0e4 100644 --- a/Assets/_Game/Scripts/Enemy/EnemyBase.cs +++ b/Assets/_Game/Scripts/Enemy/EnemyBase.cs @@ -1,6 +1,10 @@ using System; +using System.Collections.Generic; +using System.Text; + using UnityEngine; using Unity.Netcode; + using Colosseum.Stats; using Colosseum.Combat; @@ -23,6 +27,15 @@ namespace Colosseum.Enemy [Header("Data")] [SerializeField] protected EnemyData enemyData; + [Header("Threat Settings")] + [Tooltip("피격 시 공격자 기준 위협 수치를 누적할지 여부")] + [SerializeField] private bool useThreatSystem = true; + [Tooltip("실제 적용된 피해량에 곱해지는 위협 배율")] + [Min(0f)] [SerializeField] private float damageThreatMultiplier = 1f; + [Tooltip("초당 감소하는 위협 수치")] + [Min(0f)] [SerializeField] private float threatDecayPerSecond = 0f; + [Tooltip("현재 타겟보다 이 값 이상 높을 때만 새 타겟으로 전환합니다.")] + [Min(0f)] [SerializeField] private float retargetThreshold = 0f; // 네트워크 동기화 변수 @@ -32,6 +45,8 @@ namespace Colosseum.Enemy // 플레이어 분리용 (레이어 의존 없이 CharacterController로 식별) private readonly Collider[] overlapBuffer = new Collider[8]; + private readonly Dictionary threatTable = new Dictionary(); + private readonly List threatTargetBuffer = new List(); // 점프 등 Y 루트모션 스킬 중 NavMeshAgent 비활성화 상태 추적 private bool isAirborne = false; @@ -55,6 +70,7 @@ namespace Colosseum.Enemy public CharacterStats Stats => characterStats; public EnemyData Data => enemyData; public Animator Animator => animator; + public bool UseThreatSystem => useThreatSystem; public override void OnNetworkSpawn() { @@ -80,6 +96,7 @@ namespace Colosseum.Enemy { if (!IsServer || IsDead) return; + UpdateThreatState(Time.deltaTime); OnServerUpdate(); } @@ -250,6 +267,7 @@ namespace Colosseum.Enemy float actualDamage = Mathf.Min(damage, currentHealth.Value); currentHealth.Value = Mathf.Max(0f, currentHealth.Value - actualDamage); + RegisterThreatFromDamage(actualDamage, source); OnDamageTaken?.Invoke(actualDamage); // 대미지 피드백 (애니메이션, 이펙트 등) @@ -323,6 +341,7 @@ namespace Colosseum.Enemy protected virtual void HandleDeath() { isDead.Value = true; + ClearAllThreat(); // 실행 중인 스킬 즉시 취소 var skillController = GetComponent(); @@ -352,6 +371,7 @@ namespace Colosseum.Enemy if (!IsServer) return; isDead.Value = false; + ClearAllThreat(); InitializeStats(); if (navMeshAgent != null) @@ -370,5 +390,280 @@ namespace Colosseum.Enemy { OnHealthChanged?.Invoke(newValue, MaxHealth); } + + /// + /// 공격자 기준 위협 수치를 누적합니다. + /// + public virtual void AddThreat(GameObject source, float amount) + { + if (!IsServer || !useThreatSystem || amount <= 0f) + return; + + if (!IsValidThreatTarget(source)) + return; + + threatTable.TryGetValue(source, out float currentThreat); + threatTable[source] = currentThreat + amount; + } + + /// + /// 특정 대상의 위협 수치를 강제로 설정합니다. + /// + public virtual void SetThreat(GameObject source, float amount) + { + if (!IsServer || !useThreatSystem) + return; + + if (!IsValidThreatTarget(source) || amount <= 0f) + { + ClearThreat(source); + return; + } + + threatTable[source] = amount; + } + + /// + /// 특정 대상의 위협 수치를 제거합니다. + /// + public virtual void ClearThreat(GameObject source) + { + if (source == null) + return; + + threatTable.Remove(source); + } + + /// + /// 모든 위협 수치를 초기화합니다. + /// + public virtual void ClearAllThreat() + { + threatTable.Clear(); + } + + /// + /// 가장 높은 위협 수치를 가진 타겟을 반환합니다. + /// + public virtual GameObject GetHighestThreatTarget(GameObject currentTarget = null, string requiredTag = null, float maxDistance = Mathf.Infinity) + { + if (!useThreatSystem) + return null; + + CleanupThreatTable(); + + GameObject highestThreatTarget = null; + float highestThreat = float.MinValue; + float currentThreat = -1f; + + if (currentTarget != null + && threatTable.TryGetValue(currentTarget, out float cachedCurrentThreat) + && IsSelectableThreatTarget(currentTarget, requiredTag, maxDistance)) + { + currentThreat = cachedCurrentThreat; + } + + foreach (var pair in threatTable) + { + if (!IsSelectableThreatTarget(pair.Key, requiredTag, maxDistance)) + continue; + + if (highestThreatTarget == null || pair.Value > highestThreat) + { + highestThreatTarget = pair.Key; + highestThreat = pair.Value; + } + } + + if (highestThreatTarget == null) + return null; + + if (currentThreat >= 0f + && currentTarget != null + && currentTarget != highestThreatTarget + && highestThreat < currentThreat + retargetThreshold) + { + return currentTarget; + } + + return highestThreatTarget; + } + + /// + /// 특정 대상의 현재 위협 수치를 반환합니다. + /// + public float GetThreat(GameObject source) + { + if (source == null) + return 0f; + + return threatTable.TryGetValue(source, out float threat) ? threat : 0f; + } + + /// + /// 런타임 디버그용 위협 요약 문자열을 반환합니다. + /// + public string GetThreatDebugSummary() + { + if (!useThreatSystem) + return "위협 시스템이 비활성화되어 있습니다."; + + CleanupThreatTable(); + + if (threatTable.Count == 0) + return "등록된 위협 대상이 없습니다."; + + threatTargetBuffer.Clear(); + foreach (var pair in threatTable) + { + threatTargetBuffer.Add(pair.Key); + } + + threatTargetBuffer.Sort((a, b) => GetThreat(b).CompareTo(GetThreat(a))); + + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < threatTargetBuffer.Count; i++) + { + GameObject target = threatTargetBuffer[i]; + if (target == null) + continue; + + if (builder.Length > 0) + { + builder.AppendLine(); + } + + builder.Append(i + 1); + builder.Append(". "); + builder.Append(target.name); + builder.Append(" : "); + builder.Append(GetThreat(target).ToString("F1")); + } + + return builder.Length > 0 ? builder.ToString() : "등록된 위협 대상이 없습니다."; + } + + /// + /// 피격 정보를 위협 수치로 변환합니다. + /// + protected virtual void RegisterThreatFromDamage(float damage, object source) + { + if (!useThreatSystem || damage <= 0f) + return; + + GameObject sourceObject = ResolveThreatSource(source); + if (sourceObject == null) + return; + + AddThreat(sourceObject, damage * damageThreatMultiplier); + } + + /// + /// 위협 테이블의 무효 대상을 정리하고 자연 감소를 적용합니다. + /// + private void UpdateThreatState(float deltaTime) + { + if (!useThreatSystem || threatTable.Count == 0) + return; + + CleanupThreatTable(); + + if (threatDecayPerSecond <= 0f || threatTable.Count == 0) + return; + + threatTargetBuffer.Clear(); + foreach (var pair in threatTable) + { + threatTargetBuffer.Add(pair.Key); + } + + for (int i = 0; i < threatTargetBuffer.Count; i++) + { + GameObject target = threatTargetBuffer[i]; + if (target == null || !threatTable.TryGetValue(target, out float currentThreat)) + continue; + + float nextThreat = Mathf.Max(0f, currentThreat - (threatDecayPerSecond * deltaTime)); + if (nextThreat <= 0f) + { + threatTable.Remove(target); + continue; + } + + threatTable[target] = nextThreat; + } + } + + /// + /// 위협 대상이 유효한 선택 후보인지 확인합니다. + /// + private bool IsSelectableThreatTarget(GameObject target, string requiredTag, float maxDistance) + { + if (!IsValidThreatTarget(target)) + return false; + + if (!string.IsNullOrEmpty(requiredTag) && !target.CompareTag(requiredTag)) + return false; + + if (!float.IsInfinity(maxDistance)) + { + float distance = Vector3.Distance(transform.position, target.transform.position); + if (distance > maxDistance) + return false; + } + + return true; + } + + /// + /// 위협 누적 대상이 유효한지 확인합니다. + /// + private bool IsValidThreatTarget(GameObject target) + { + if (target == null || !target.activeInHierarchy) + return false; + + if (Colosseum.Team.IsSameTeam(gameObject, target)) + return false; + + IDamageable damageable = target.GetComponent(); + return damageable != null && !damageable.IsDead; + } + + /// + /// 위협 테이블에서 무효한 대상을 제거합니다. + /// + private void CleanupThreatTable() + { + if (threatTable.Count == 0) + return; + + threatTargetBuffer.Clear(); + foreach (var pair in threatTable) + { + if (!IsValidThreatTarget(pair.Key)) + { + threatTargetBuffer.Add(pair.Key); + } + } + + for (int i = 0; i < threatTargetBuffer.Count; i++) + { + threatTable.Remove(threatTargetBuffer[i]); + } + } + + /// + /// 다양한 source 타입에서 실제 GameObject를 추출합니다. + /// + private static GameObject ResolveThreatSource(object source) + { + return source switch + { + GameObject sourceObject => sourceObject, + Component component => component.gameObject, + _ => null, + }; + } } } From 671f8d8a257676dd9ba3b6466f9aabf185b15a27 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Thu, 19 Mar 2026 23:35:51 +0900 Subject: [PATCH 07/11] =?UTF-8?q?feat:=20=ED=94=8C=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20=EB=8B=A4=EC=9A=B4/=EB=84=89=EB=B0=B1=20=ED=94=BC?= =?UTF-8?q?=EA=B2=A9=20=EB=B0=98=EC=9D=91=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/Test.unity | 26 +- Assets/_Game/Animations/Anim_Common_경직.fbx | Bin 0 -> 687920 bytes .../Animations/Anim_Common_경직.fbx.meta | 1564 +++++++++++++++++ .../_Game/Animations/Anim_Common_다운루프.fbx | Bin 0 -> 746144 bytes .../Animations/Anim_Common_다운루프.fbx.meta | 1564 +++++++++++++++++ .../_Game/Animations/Anim_Common_다운시작.fbx | Bin 0 -> 663648 bytes .../Animations/Anim_Common_다운시작.fbx.meta | 1564 +++++++++++++++++ .../_Game/Animations/Anim_Common_다운회복.fbx | Bin 0 -> 872912 bytes .../Animations/Anim_Common_다운회복.fbx.meta | 1564 +++++++++++++++++ .../Controllers/AC_Player_Default.controller | 197 +++ .../Data_SkillEffect_Player_다운.asset | 26 + .../Data_SkillEffect_Player_다운.asset.meta | 8 + .../Bosses/Prefab_Boss_BossTemplate.prefab | 21 - .../Player/Prefab_Player_Default.prefab | 11 + .../Abnormalities/AbnormalityManager.cs | 26 + Assets/_Game/Scripts/Enemy/EnemyBase.cs | 9 +- .../Network/EditorPlayHostBootstrap.cs | 4 + .../Network/EditorPlayHostBootstrap.cs.meta | 2 + .../Scripts/Player/HitReactionController.cs | 211 +++ .../Player/HitReactionController.cs.meta | 2 + .../Player/PlayerAbnormalityDebugHUD.cs | 2 +- .../PlayerAbnormalityVerificationRunner.cs | 133 +- .../_Game/Scripts/Player/PlayerActionState.cs | 29 +- Assets/_Game/Scripts/Player/PlayerMovement.cs | 60 +- .../Scripts/Player/PlayerNetworkController.cs | 22 +- .../Scripts/Skills/Effects/DownEffect.cs | 42 + .../Scripts/Skills/Effects/DownEffect.cs.meta | 2 + .../Scripts/Skills/Effects/KnockbackEffect.cs | 23 +- .../_Game/Scripts/Skills/SkillController.cs | 51 +- 29 files changed, 7108 insertions(+), 55 deletions(-) create mode 100644 Assets/_Game/Animations/Anim_Common_경직.fbx create mode 100644 Assets/_Game/Animations/Anim_Common_경직.fbx.meta create mode 100644 Assets/_Game/Animations/Anim_Common_다운루프.fbx create mode 100644 Assets/_Game/Animations/Anim_Common_다운루프.fbx.meta create mode 100644 Assets/_Game/Animations/Anim_Common_다운시작.fbx create mode 100644 Assets/_Game/Animations/Anim_Common_다운시작.fbx.meta create mode 100644 Assets/_Game/Animations/Anim_Common_다운회복.fbx create mode 100644 Assets/_Game/Animations/Anim_Common_다운회복.fbx.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset.meta create mode 100644 Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs create mode 100644 Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs.meta create mode 100644 Assets/_Game/Scripts/Player/HitReactionController.cs create mode 100644 Assets/_Game/Scripts/Player/HitReactionController.cs.meta create mode 100644 Assets/_Game/Scripts/Skills/Effects/DownEffect.cs create mode 100644 Assets/_Game/Scripts/Skills/Effects/DownEffect.cs.meta diff --git a/Assets/Scenes/Test.unity b/Assets/Scenes/Test.unity index 58253de0..826178dd 100644 --- a/Assets/Scenes/Test.unity +++ b/Assets/Scenes/Test.unity @@ -2491,15 +2491,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 170188453522781500, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 0.2 objectReference: {fileID: 0} - target: {fileID: 170188453522781500, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 170188453522781500, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMin.x - value: 0 + value: 0.2 objectReference: {fileID: 0} - target: {fileID: 222507439395443271, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_Enabled @@ -2579,15 +2579,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2668790415109567114, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 0.2 objectReference: {fileID: 0} - target: {fileID: 2668790415109567114, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2668790415109567114, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_AnchorMin.x - value: 0 + value: 0.2 objectReference: {fileID: 0} - target: {fileID: 3299919758736932218, guid: 54087b4bd46db9e4fb7da13cf7a6cc69, type: 3} propertyPath: m_SizeDelta.x @@ -4738,7 +4738,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.ConnectionUI ipAddress: 127.0.0.1 - port: 7788 + port: 7777 autoStartHostInEditor: 0 connectionStatus: Disconnected --- !u!4 &854739757 stripped @@ -7252,6 +7252,18 @@ PrefabInstance: propertyPath: m_AnchorMax.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/_Game/Animations/Anim_Common_경직.fbx b/Assets/_Game/Animations/Anim_Common_경직.fbx new file mode 100644 index 0000000000000000000000000000000000000000..3dc0b1f1a8a0682db56b5e4165a9e18fc1572a24 GIT binary patch literal 687920 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 F}ePcM# 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

IdA_m#}&2euSwLD(Uo&3Blp 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 z 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�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 TzkbiE5!*Jm*i`mVm*)QgECI4n literal 0 HcmV?d00001 diff --git a/Assets/_Game/Animations/Anim_Common_다운시작.fbx.meta b/Assets/_Game/Animations/Anim_Common_다운시작.fbx.meta new file mode 100644 index 00000000..10b2d72e --- /dev/null +++ b/Assets/_Game/Animations/Anim_Common_다운시작.fbx.meta @@ -0,0 +1,1564 @@ +fileFormatVersion: 2 +guid: 9f1ccf176a8592d4997f8a7c48f9571f +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: root + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 0 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: A_MOD_SWD_KnockDown_Enter_RM_Neut + takeName: A_MOD_SWD_KnockDown_Begin_RM_Neut + internalID: 3325809351021969952 + firstFrame: 1 + lastFrame: 22 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: root + weight: 1 + - path: root/ik_foot_root + weight: 1 + - path: root/ik_foot_root/ik_foot_l + weight: 1 + - path: root/ik_foot_root/ik_foot_r + weight: 1 + - path: root/ik_hand_root + weight: 1 + - path: root/ik_hand_root/ik_hand_gun + weight: 1 + - path: root/ik_hand_root/ik_hand_gun/ik_hand_l + weight: 1 + - path: root/ik_hand_root/ik_hand_gun/ik_hand_r + weight: 1 + - path: root/pelvis + weight: 1 + - path: root/pelvis/hipAttach_l + weight: 0 + - path: root/pelvis/hipAttach_r + weight: 0 + - path: root/pelvis/hipAttachBack + weight: 0 + - path: root/pelvis/hipAttachFront + weight: 0 + - path: root/pelvis/spine_01 + weight: 1 + - path: root/pelvis/spine_01/spine_02 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/backAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/shoulderAttach_l + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/elbowAttach_l + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l/index_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l/middle_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l/pinky_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/prop_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l/ring_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l/thumb_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/lowerarm_twist_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/upperarm_twist_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/shoulderAttach_r + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/elbowAttach_r + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r/index_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r/middle_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r/pinky_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/prop_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r/ring_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r/thumb_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/lowerarm_twist_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/upperarm_twist_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/faceAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/headAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/jaw + weight: 1 + - path: root/pelvis/thigh_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/calf_twist_01_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/foot_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/foot_l/ball_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/kneeAttach_l + weight: 0 + - path: root/pelvis/thigh_l/thigh_twist_01_l + weight: 1 + - path: root/pelvis/thigh_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/calf_twist_01_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/foot_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/foot_r/ball_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/kneeAttach_r + weight: 0 + - path: root/pelvis/thigh_r/thigh_twist_01_r + weight: 1 + - path: SK_DMMY_BASE_01_00BODY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 3daacf102d24acb4aae029057b824d13, type: 2} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 0 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: pelvis + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thigh_l + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thigh_r + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: calf_l + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: calf_r + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: foot_l + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: foot_r + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_01 + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_02 + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: neck_01 + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: clavicle_l + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: clavicle_r + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: upperarm_l + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: upperarm_r + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: lowerarm_l + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: lowerarm_r + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: hand_l + humanName: LeftHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: hand_r + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ball_l + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ball_r + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: eye_l + humanName: LeftEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: eye_r + humanName: RightEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: jaw + humanName: Jaw + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_01_l + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_02_l + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_03_l + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_01_l + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_02_l + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_03_l + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_01_l + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_02_l + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_03_l + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_01_l + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_02_l + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_03_l + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_01_l + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_02_l + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_03_l + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_01_r + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_02_r + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_03_r + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_01_r + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_02_r + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_03_r + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_01_r + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_02_r + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_03_r + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_01_r + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_02_r + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_03_r + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_01_r + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_02_r + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_03_r + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_03 + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ModularSyntyCharacter(Clone) + parentName: + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: mesh + parentName: ModularSyntyCharacter(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: upperBody + parentName: mesh + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_01HEAD + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_02HAIR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_03EBRL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_04EBRR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_05EYEL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_06EYER + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_07EARL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_08EARR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_10TORS + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_11AUPL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_12AUPR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_13ALWL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_14ALWR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_15HNDL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_16HNDR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_22AHED + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_23AFAC + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_24ABCK + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_29ASHL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_30ASHR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_31AEBL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_32AEBR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_35NOSE + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_36TETH + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_37TONG + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerBody + parentName: mesh + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_17HIPS + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_18LEGL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_19LEGR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_20FOTL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_21FOTR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_25AHPF + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_26AHPB + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_27AHPL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_28AHPR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_33AKNL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_34AKNR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: root + parentName: ModularSyntyCharacter(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pelvis + parentName: root + position: {x: -0.0000022523334, y: 0.91021377, z: -0.028169593} + rotation: {x: 0.5, y: -0.5, z: -0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttachFront + parentName: pelvis + position: {x: -0.019410094, y: 0.13986845, z: -0.0000022521172} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttach_l + parentName: pelvis + position: {x: -0.063454054, y: -0.021303682, z: 0.16243535} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttachBack + parentName: pelvis + position: {x: -0.082250975, y: -0.09717253, z: -0.0000022526553} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttach_r + parentName: pelvis + position: {x: -0.063454054, y: -0.021303682, z: -0.16243985} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: thigh_l + parentName: pelvis + position: {x: 0.027215123, y: -0.0029453347, z: 0.09613058} + rotation: {x: 0.9999093, y: 0.009337232, z: 0.009710422, w: 0.0000427429} + scale: {x: 1, y: 1, z: 1} + - name: thigh_twist_01_l + parentName: thigh_l + position: {x: 0.22210231, y: -9.305644e-10, z: -2.2737367e-15} + rotation: {x: -0.000003299037, y: 0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: calf_l + parentName: thigh_l + position: {x: 0.44581473, y: 0.000072504714, z: -0.0000000019213142} + rotation: {x: -0.0000065918703, y: 0.0000009978124, z: 0.050290126, w: 0.99873465} + scale: {x: 1, y: 1, z: 1} + - name: calf_twist_01_l + parentName: calf_l + position: {x: 0.17972955, y: -0.00000024332752, z: 0.00000005759147} + rotation: {x: 0.0000032780022, y: -0.0000003278709, z: -0.0000013815501, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: foot_l + parentName: calf_l + position: {x: 0.3601809, y: -0.0000020200662, z: 0.00000047907946} + rotation: {x: -0.00039115272, y: -0.0097033065, z: -0.040959746, w: 0.9991136} + scale: {x: 1, y: 1, z: 1} + - name: ball_l + parentName: foot_l + position: {x: 0.055705708, y: -0.111233726, z: 0.0000064460714} + rotation: {x: 0.49303845, y: -0.5058754, z: 0.51279974, w: -0.48789304} + scale: {x: 1, y: 1, z: 1} + - name: kneeAttach_l + parentName: calf_l + position: {x: -0.0052763503, y: -0.053035233, z: -0.007814086} + rotation: {x: 0.70616484, y: -0.035823014, z: -0.02210338, w: 0.70679516} + scale: {x: 1, y: 1, z: 1} + - name: kneeProc_l + parentName: calf_l + position: {x: -0.0007214744, y: 0.0487988, z: -0.0000000032509442} + rotation: {x: -0.49999872, y: 0.50000197, z: 0.50000125, w: -0.4999981} + scale: {x: 1, y: 1, z: 1} + - name: gluteProc_l + parentName: thigh_l + position: {x: 0.07982383, y: 0.08717705, z: -4.316547e-15} + rotation: {x: 0.03576505, y: 0.70620173, z: 0.70620173, w: 0.03576505} + scale: {x: 1, y: 1, z: 1} + - name: thigh_r + parentName: pelvis + position: {x: 0.027215114, y: -0.002945335, z: -0.09613508} + rotation: {x: -0.009336888, y: 0.9999093, z: 0.000042741325, w: -0.00971042} + scale: {x: 1, y: 1, z: 1} + - name: thigh_twist_01_r + parentName: thigh_r + position: {x: -0.22210231, y: 9.305628e-10, z: 1.8296475e-15} + rotation: {x: -0.0000032989917, y: 0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: calf_r + parentName: thigh_r + position: {x: -0.44581473, y: -0.00007250627, z: 0.0000000019213209} + rotation: {x: -0.0000065917798, y: 0.000000997815, z: 0.05029121, w: 0.9987346} + scale: {x: 1, y: 1, z: 1} + - name: calf_twist_01_r + parentName: calf_r + position: {x: -0.17972955, y: 0.00000024333596, z: -0.00000005759147} + rotation: {x: 0.000003277956, y: -0.0000003278709, z: -0.0000013815983, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: foot_r + parentName: calf_r + position: {x: -0.3601809, y: 0.0000020201367, z: -0.00000047907946} + rotation: {x: -0.00039116672, y: -0.0097033065, z: -0.040961176, w: 0.99911356} + scale: {x: 1, y: 1, z: 1} + - name: ball_r + parentName: foot_r + position: {x: -0.0557064, y: 0.111234754, z: -0.00000645117} + rotation: {x: -0.5059259, y: -0.49299014, z: 0.4879391, w: 0.51275253} + scale: {x: 1, y: 1, z: 1} + - name: kneeAttach_r + parentName: calf_r + position: {x: 0.0052765333, y: 0.05303553, z: 0.007814086} + rotation: {x: -0.0004457006, y: -0.009701246, z: -0.04096158, w: 0.99911356} + scale: {x: 1, y: 1, z: 1} + - name: kneeProc_r + parentName: calf_r + position: {x: 0.00072147435, y: -0.048798498, z: 0.0000000032509941} + rotation: {x: 0.50000125, y: 0.4999981, z: 0.49999872, w: 0.50000197} + scale: {x: 1, y: 1, z: 1} + - name: gluteProc_r + parentName: thigh_r + position: {x: -0.079823904, y: -0.087177, z: 4.263256e-15} + rotation: {x: -0.70620173, y: 0.035765298, z: -0.035765298, w: 0.70620173} + scale: {x: 1, y: 1, z: 1} + - name: leg_proportion_l + parentName: pelvis + position: {x: 0.026323471, y: -0.0029619911, z: 0.09611326} + rotation: {x: -0.5094997, y: 0.49045226, z: 0.4997463, w: 0.5001203} + scale: {x: 1, y: 1, z: 1} + - name: leg_proportion_r + parentName: pelvis + position: {x: 0.026323471, y: -0.0029619904, z: -0.096117765} + rotation: {x: 0.5094997, y: -0.4904523, z: 0.49974626, w: 0.5001203} + scale: {x: 1, y: 1, z: 1} + - name: spine_01 + parentName: pelvis + position: {x: -0.039486945, y: 0.0028441222, z: -0.000000058610382} + rotation: {x: 0.9969295, y: -0.07830423, z: 0.00000085288184, w: 0.000010271229} + scale: {x: 1, y: 1, z: 1} + - name: spine_02 + parentName: spine_01 + position: {x: -0.068371974, y: 0.0014307626, z: -0.000000006042418} + rotation: {x: -0.0000000011642847, y: -0.000000047216822, z: -0.024966702, w: 0.99968827} + scale: {x: 1, y: 1, z: 1} + - name: spine_03 + parentName: spine_02 + position: {x: -0.12554944, y: 0.0063453894, z: -3.57232e-10} + rotation: {x: -0.000021314132, y: -0.00037258762, z: -0.050914716, w: 0.99870294} + scale: {x: 1, y: 1, z: 1} + - name: neck_01 + parentName: spine_03 + position: {x: -0.31951433, y: 0.036587797, z: 0.00000072927924} + rotation: {x: -0.001185808, y: -0.008268698, z: 0.13579145, w: 0.9907023} + scale: {x: 1, y: 1, z: 1} + - name: head + parentName: neck_01 + position: {x: -0.100135565, y: 0.00022404436, z: -0.00017833713} + rotation: {x: 0.0012173305, y: 0.008640665, z: -0.138246, w: 0.9903595} + scale: {x: 1, y: 1, z: 1} + - name: headAttach + parentName: head + position: {x: -0.20189163, y: -0.014919091, z: 0.0000010824075} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: jaw + parentName: head + position: {x: 0.00038189514, y: -0.02608602, z: -0.000003383968} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: faceAttach + parentName: head + position: {x: -0.072368294, y: -0.1373822, z: -0.0000019406757} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: eye_l + parentName: head + position: {x: -0.06599293, y: -0.08166062, z: -0.04100604} + rotation: {x: -0.4998981, y: -0.5001014, z: 0.50010556, w: 0.4998949} + scale: {x: 1, y: 1, z: 1} + - name: eyeLight_l + parentName: head + position: {x: -0.06599293, y: -0.08166062, z: -0.04100604} + rotation: {x: -0.5004372, y: -0.49955237, z: 0.5006456, w: 0.4993637} + scale: {x: 1, y: 1, z: 1} + - name: eye_r + parentName: head + position: {x: -0.06599285, y: -0.08166231, z: 0.04100519} + rotation: {x: 0.49989286, y: 0.50010663, z: -0.5001004, w: -0.4999001} + scale: {x: 1, y: 1, z: 1} + - name: eyeLight_r + parentName: head + position: {x: -0.06599285, y: -0.08166231, z: 0.04100519} + rotation: {x: -0.50052696, y: -0.49948066, z: 0.50071675, w: 0.49927408} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_l + parentName: spine_03 + position: {x: -0.22350082, y: 0.03559616, z: -0.019627647} + rotation: {x: 0.0107471105, y: -0.69317526, z: 0.00030483722, w: 0.72068894} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_l + parentName: clavicle_l + position: {x: -0.17468753, y: 0.000013172175, z: -0.00004209622} + rotation: {x: -0.0100861145, y: -0.036951534, z: -0.011973186, w: 0.99919444} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_twist_01_l + parentName: upperarm_l + position: {x: -0.14148545, y: 8.881784e-18, z: 3.126388e-15} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_l + parentName: upperarm_l + position: {x: -0.28402275, y: -0.00003282442, z: 7.1054274e-15} + rotation: {x: 1.4908279e-16, y: 3.8793845e-14, z: 0.033878356, w: 0.99942595} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_twist_01_l + parentName: lowerarm_l + position: {x: -0.120697714, y: -7.1231905e-15, z: 1.9895197e-15} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: hand_l + parentName: lowerarm_l + position: {x: -0.24188016, y: -1.4876989e-14, z: 3.410605e-15} + rotation: {x: -0.7071068, y: -1.6063768e-14, z: 2.7297773e-14, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: index_01_l + parentName: hand_l + position: {x: -0.10403141, y: -0.012306143, z: -0.02887068} + rotation: {x: -0.055210784, y: -0.04301227, z: -0.011495796, w: 0.9974817} + scale: {x: 1, y: 1, z: 1} + - name: index_02_l + parentName: index_01_l + position: {x: -0.040569592, y: -1.1368684e-15, z: 9.7699626e-17} + rotation: {x: -0.00000014156093, y: 0.00000032782532, z: -0.038601268, w: 0.99925476} + scale: {x: 1, y: 1, z: 1} + - name: index_03_l + parentName: index_02_l + position: {x: -0.03545824, y: -8.5265126e-16, z: -2.5352831e-11} + rotation: {x: 4.7426774e-11, y: -4.7146775e-10, z: -0.032122757, w: 0.99948394} + scale: {x: 1, y: 1, z: 1} + - name: middle_01_l + parentName: hand_l + position: {x: -0.10858404, y: -0.01249719, z: 0.0006551574} + rotation: {x: -0.052811075, y: 0.011621564, z: -0.024697497, w: 0.9982315} + scale: {x: 1, y: 1, z: 1} + - name: middle_02_l + parentName: middle_01_l + position: {x: -0.04281506, y: 0, z: 1.2434498e-16} + rotation: {x: 0.000000055879333, y: -0.00000010803338, z: -0.03812213, w: 0.99927306} + scale: {x: 1, y: 1, z: 1} + - name: middle_03_l + parentName: middle_02_l + position: {x: -0.041363765, y: 2.842171e-16, z: -3.2318485e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ring_01_l + parentName: hand_l + position: {x: -0.104817785, y: -0.010955312, z: 0.029533258} + rotation: {x: -0.058461137, y: 0.02784743, z: -0.01813663, w: 0.99773633} + scale: {x: 1, y: 1, z: 1} + - name: ring_02_l + parentName: ring_01_l + position: {x: -0.039984744, y: 8.5265126e-16, z: 1.4210854e-16} + rotation: {x: -0.000000029802319, y: 0.00000076927233, z: -0.037985075, w: 0.9992783} + scale: {x: 1, y: 1, z: 1} + - name: ring_03_l + parentName: ring_02_l + position: {x: -0.033619042, y: 2.842171e-16, z: -2.6917135e-11} + rotation: {x: 5.9796855e-11, y: -5.2945986e-10, z: -0.036507633, w: 0.9993334} + scale: {x: 1, y: 1, z: 1} + - name: pinky_01_l + parentName: hand_l + position: {x: -0.10075955, y: -0.0028467115, z: 0.050183266} + rotation: {x: -0.049280424, y: 0.05426886, z: -0.00065056776, w: 0.99730945} + scale: {x: 1, y: 1, z: 1} + - name: pinky_02_l + parentName: pinky_01_l + position: {x: -0.027616674, y: 5.1159075e-15, z: 1.5276668e-15} + rotation: {x: 0.000011686231, y: 0.000031877298, z: -0.03867463, w: 0.9992519} + scale: {x: 1, y: 1, z: 1} + - name: pinky_03_l + parentName: pinky_02_l + position: {x: -0.026955087, y: -1.4210854e-15, z: -1.9003394e-11} + rotation: {x: 0.000003738, y: -0.00008235291, z: -0.03240269, w: 0.9994749} + scale: {x: 1, y: 1, z: 1} + - name: thumb_01_l + parentName: hand_l + position: {x: -0.0345987, y: 0.0056171953, z: -0.032003786} + rotation: {x: 0.39697987, y: -0.333253, z: 0.11576028, w: 0.84731865} + scale: {x: 1, y: 1, z: 1} + - name: thumb_02_l + parentName: thumb_01_l + position: {x: -0.054442167, y: 7.81597e-16, z: -2.842171e-16} + rotation: {x: -0.0005483031, y: -0.0031062365, z: -0.039842293, w: 0.99920106} + scale: {x: 1, y: 1, z: 1} + - name: thumb_03_l + parentName: thumb_02_l + position: {x: -0.046614956, y: 2.6076917e-14, z: -2.441169e-11} + rotation: {x: -0.0015578927, y: 0.0017606178, z: -0.11588088, w: 0.9932604} + scale: {x: 1, y: 1, z: 1} + - name: prop_l + parentName: hand_l + position: {x: -0.0882784, y: 0.025021512, z: -0.0035439597} + rotation: {x: -0.7062911, y: -0.0022872484, z: 0.02265892, w: 0.7075552} + scale: {x: 1, y: 1, z: 1} + - name: elbowAttach_l + parentName: lowerarm_l + position: {x: 0.0146771595, y: 0.033135533, z: -0.00792725} + rotation: {x: 0.7071067, y: 0.0023016115, z: -0.022657443, w: 0.70674} + scale: {x: 1, y: 1, z: 1} + - name: elbowProc_l + parentName: lowerarm_l + position: {x: 0.0004847235, y: -0.008592526, z: 0} + rotation: {x: 7.71204e-14, y: -6.90462e-14, z: 0.7071068, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: shoulderAttach_l + parentName: clavicle_l + position: {x: -0.17453544, y: 0.005942992, z: 0.081702344} + rotation: {x: 0.69873434, y: -0.0083530685, z: 0.018672163, w: 0.7150888} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_proportion_l + parentName: clavicle_l + position: {x: -0.17412104, y: 2.6645352e-17, z: -2.842171e-16} + rotation: {x: -0.0100861145, y: -0.036951534, z: -0.011973186, w: 0.99919444} + scale: {x: 1, y: 1, z: 1} + - name: backAttach + parentName: spine_03 + position: {x: -0.19363786, y: 0.14232747, z: 0.00014993476} + rotation: {x: 0.49863327, y: -0.5013733, z: 0.49824864, w: 0.501735} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_r + parentName: spine_03 + position: {x: -0.22347127, y: 0.03559516, z: 0.019966682} + rotation: {x: 0.7201719, y: 0.00031607514, z: -0.69371283, w: 0.01071387} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_r + parentName: clavicle_r + position: {x: -0.17468753, y: -0.000013174365, z: -0.000042095136} + rotation: {x: -0.036951292, y: -0.010065555, z: 0.9991947, w: -0.011973949} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_twist_01_r + parentName: upperarm_r + position: {x: 0.14148547, y: -1.8207657e-16, z: -2.842171e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_r + parentName: upperarm_r + position: {x: 0.28402275, y: -0.00003282442, z: -1.1681323e-13} + rotation: {x: 1.5439825e-16, y: 1.215741e-10, z: -0.033878356, w: 0.99942595} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_twist_01_r + parentName: lowerarm_r + position: {x: 0.120697714, y: -7.31859e-15, z: -2.9340867e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: hand_r + parentName: lowerarm_r + position: {x: 0.24188016, y: -1.5214496e-14, z: -5.879912e-11} + rotation: {x: -0.7071068, y: 8.5967476e-11, z: 8.5923386e-11, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: index_01_r + parentName: hand_r + position: {x: 0.10403141, y: -0.012306143, z: -0.02887068} + rotation: {x: 0.9974817, y: 0.011495865, z: -0.043012295, w: 0.055210814} + scale: {x: 1, y: 1, z: 1} + - name: index_02_r + parentName: index_01_r + position: {x: 0.040569592, y: -1.4210854e-15, z: -5.7731595e-17} + rotation: {x: 0.00000012293452, y: -0.00000030605574, z: -0.038602415, w: 0.99925464} + scale: {x: 1, y: 1, z: 1} + - name: index_03_r + parentName: index_02_r + position: {x: 0.03545824, y: 0, z: 2.535288e-11} + rotation: {x: 4.742673e-11, y: -4.714677e-10, z: -0.032122757, w: 0.99948394} + scale: {x: 1, y: 1, z: 1} + - name: middle_01_r + parentName: hand_r + position: {x: 0.10858404, y: -0.01249719, z: 0.0006551573} + rotation: {x: 0.99823153, y: 0.024697142, z: 0.0116215665, w: 0.05281112} + scale: {x: 1, y: 1, z: 1} + - name: middle_02_r + parentName: middle_01_r + position: {x: 0.04281506, y: -5.684342e-16, z: -3.5527136e-17} + rotation: {x: -0.0000000037252894, y: -0.00000012759116, z: -0.038124107, w: 0.99927306} + scale: {x: 1, y: 1, z: 1} + - name: middle_03_r + parentName: middle_02_r + position: {x: 0.041363765, y: 8.5265126e-16, z: 3.2318644e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ring_01_r + parentName: hand_r + position: {x: 0.104817785, y: -0.010955312, z: 0.029533258} + rotation: {x: 0.99773645, y: 0.018136974, z: 0.027847247, w: 0.058461092} + scale: {x: 1, y: 1, z: 1} + - name: ring_02_r + parentName: ring_01_r + position: {x: 0.039984744, y: 5.684342e-16, z: -1.7763568e-17} + rotation: {x: -0.00000016763798, y: 0.000000012456433, z: -0.037983324, w: 0.99927837} + scale: {x: 1, y: 1, z: 1} + - name: ring_03_r + parentName: ring_02_r + position: {x: 0.033619042, y: -2.842171e-16, z: 2.6917206e-11} + rotation: {x: 5.979683e-11, y: -5.2945986e-10, z: -0.036507633, w: 0.9993334} + scale: {x: 1, y: 1, z: 1} + - name: pinky_01_r + parentName: hand_r + position: {x: 0.10075955, y: -0.0028467115, z: 0.050183266} + rotation: {x: 0.9973093, y: 0.00065243046, z: 0.054269716, w: 0.04928028} + scale: {x: 1, y: 1, z: 1} + - name: pinky_02_r + parentName: pinky_01_r + position: {x: 0.027616674, y: -3.410605e-15, z: 7.105427e-17} + rotation: {x: 0.0000116303545, y: 0.000032189433, z: -0.038673446, w: 0.9992519} + scale: {x: 1, y: 1, z: 1} + - name: pinky_03_r + parentName: pinky_02_r + position: {x: 0.026955087, y: 8.5265126e-16, z: 1.9003323e-11} + rotation: {x: 0.000003738, y: -0.00008235291, z: -0.03240269, w: 0.9994749} + scale: {x: 1, y: 1, z: 1} + - name: thumb_01_r + parentName: hand_r + position: {x: 0.0345987, y: 0.0056171953, z: -0.032003786} + rotation: {x: 0.84731865, y: -0.11576027, z: -0.3332531, w: -0.39697996} + scale: {x: 1, y: 1, z: 1} + - name: thumb_02_r + parentName: thumb_01_r + position: {x: 0.054442167, y: 7.105427e-17, z: 0} + rotation: {x: -0.00054827315, y: -0.0031055536, z: -0.03984026, w: 0.99920106} + scale: {x: 1, y: 1, z: 1} + - name: thumb_03_r + parentName: thumb_02_r + position: {x: 0.046614956, y: -2.7142732e-14, z: 2.4412259e-11} + rotation: {x: -0.0015578927, y: 0.0017606178, z: -0.11588088, w: 0.9932604} + scale: {x: 1, y: 1, z: 1} + - name: prop_r + parentName: hand_r + position: {x: 0.07457066, y: 0.025728663, z: 0.0000000014503504} + rotation: {x: -0.7062911, y: 0.00228721, z: -0.02265888, w: 0.7075552} + scale: {x: 1, y: 1, z: 1} + - name: elbowAttach_r + parentName: lowerarm_r + position: {x: -0.014928731, y: 0.03443859, z: -0.007937847} + rotation: {x: 0.7071067, y: -0.0023016115, z: 0.022657443, w: 0.70674} + scale: {x: 1, y: 1, z: 1} + - name: elbowProc_r + parentName: lowerarm_r + position: {x: -0.0004847235, y: -0.008592526, z: -3.0656224e-11} + rotation: {x: 0.0000000013522875, y: -0.0000000011803636, z: 0.7071068, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: shoulderAttach_r + parentName: clavicle_r + position: {x: -0.17453538, y: -0.0059396313, z: 0.08170261} + rotation: {x: 0.7150744, y: -0.018671913, z: 0.0083533805, w: 0.698749} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_proportion_r + parentName: clavicle_r + position: {x: -0.17412104, y: -6.2505856e-10, z: -2.842171e-16} + rotation: {x: -0.04028487, y: 0.0007375905, z: 0.9991275, w: -0.01099269} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_proportion_l + parentName: spine_03 + position: {x: -0.22350082, y: 0.03559616, z: -0.019627647} + rotation: {x: 0.019455113, y: -0.0073838024, z: 0.99975294, w: -0.0078149075} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_proportion_r + parentName: spine_03 + position: {x: -0.22347127, y: 0.03559516, z: 0.019966682} + rotation: {x: 0.9997675, y: 0.0077993497, z: 0.018709414, w: 0.007352356} + scale: {x: 1, y: 1, z: 1} + - name: clavLiftProc_r + parentName: spine_03 + position: {x: -0.18473838, y: -0.06660258, z: 0.12045964} + rotation: {x: -0.7450615, y: 0.14694367, z: -0.09542922, w: 0.64357144} + scale: {x: 1, y: 1, z: 1} + - name: clavLiftProc_l + parentName: spine_03 + position: {x: -0.18491796, y: -0.0665965, z: -0.12018347} + rotation: {x: 0.7450063, y: -0.14646097, z: -0.095988885, w: 0.6436621} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_gun + parentName: ik_hand_root + position: {x: 0.71960056, y: 0.050023556, z: 1.3547275} + rotation: {x: 0.9997403, y: -0.014404948, z: -0.017639551, w: 0.00089385436} + scale: {x: 1, y: 1, z: 1} + - name: ik_shoulder_l + parentName: ik_hand_root + position: {x: -0.19433995, y: 0.045976024, z: 1.3732836} + rotation: {x: -0.00029574113, y: -0.017659763, z: -0.019472878, w: 0.9996544} + scale: {x: 1, y: 1, z: 1} + - name: ik_elbow_l + parentName: ik_hand_root + position: {x: -0.47444484, y: 0.54031706, z: 1.3621318} + rotation: {x: -0.7075555, y: -0.000000019191658, z: -0.000000019216037, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_shoulder_r + parentName: ik_hand_root + position: {x: 0.19433989, y: 0.045976024, z: 1.3732836} + rotation: {x: -0.000295744, y: 0.017659709, z: 0.019472878, w: 0.9996544} + scale: {x: 1, y: 1, z: 1} + - name: ik_elbow_r + parentName: ik_hand_root + position: {x: 0.47444475, y: 0.54031706, z: 1.362132} + rotation: {x: -0.7075555, y: -0.000000019191658, z: -0.000000019216037, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_l + parentName: ik_hand_root + position: {x: -0.7196007, y: 0.050023556, z: 1.3547275} + rotation: {x: -0.7075555, y: -0.000000019191656, z: -0.000000019216035, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_r + parentName: ik_hand_root + position: {x: 0.71960056, y: 0.050023556, z: 1.3547275} + rotation: {x: -0.7075555, y: -0.000000019191656, z: -0.000000019216035, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_thigh_l + parentName: ik_foot_root + position: {x: -0.09613283, y: 0.031114928, z: 0.88299865} + rotation: {x: -0.006632646, y: 0.7139089, z: -0.0065721944, w: 0.7001763} + scale: {x: 1, y: 1, z: 1} + - name: ik_knee_l + parentName: ik_foot_root + position: {x: -0.105479695, y: -0.38589245, z: 0.40378192} + rotation: {x: 0.7071068, y: -0.0000000025383675, z: -4.5561075e-18, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_l + parentName: ik_foot_root + position: {x: -0.11175866, y: 0.052343525, z: 0.078439645} + rotation: {x: 0.00003155761, y: 0.7071067, z: -0.000031557604, w: 0.7071069} + scale: {x: 1, y: 1, z: 1} + - name: ik_thigh_r + parentName: ik_foot_root + position: {x: 0.09613283, y: 0.031114928, z: 0.88299865} + rotation: {x: 0.70017636, y: 0.0065719523, z: 0.713909, w: 0.006632399} + scale: {x: 1, y: 1, z: 1} + - name: ik_knee_r + parentName: ik_foot_root + position: {x: 0.1054814, y: -0.3858974, z: 0.4037803} + rotation: {x: -0.7071068, y: -4.5561075e-18, z: 0.0000000025383673, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_r + parentName: ik_foot_root + position: {x: 0.11175866, y: 0.05234486, z: 0.07843973} + rotation: {x: 0.7071069, y: 0.000031558906, z: 0.7071067, w: -0.000031558913} + scale: {x: 1, y: 1, z: 1} + - name: ik_settings + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_l_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_r_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_l_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_r_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_body_settings + parentName: ik_settings + position: {x: -0.01, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_look_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_aim + parentName: ik_look_root + position: {x: -0.002099508, y: -0.9533491, z: 1.5590109} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_eyes_aim + parentName: ik_look_root + position: {x: -0.002081081, y: -0.9533491, z: 1.6285093} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_orient + parentName: ik_look_root + position: {x: -0.0020982705, y: 0.017804349, z: 2.0683122} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: b9745fea1f5904242a93d6838cb1b985, + type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Animations/Anim_Common_다운회복.fbx b/Assets/_Game/Animations/Anim_Common_다운회복.fbx new file mode 100644 index 0000000000000000000000000000000000000000..227f5ae99688f6779ec7c2115177e605b8768bbc GIT binary patch literal 872912 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 literal 0 HcmV?d00001 diff --git a/Assets/_Game/Animations/Anim_Common_다운회복.fbx.meta b/Assets/_Game/Animations/Anim_Common_다운회복.fbx.meta new file mode 100644 index 00000000..23ae6c9c --- /dev/null +++ b/Assets/_Game/Animations/Anim_Common_다운회복.fbx.meta @@ -0,0 +1,1564 @@ +fileFormatVersion: 2 +guid: 3866152d4c1922849be562e6e814dce3 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 0 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: A_MOD_SWD_KnockDown_Exit_Neut + takeName: A_MOD_SWD_KnockDown_Exit_Neut + internalID: -3512901111006340046 + firstFrame: 59 + lastFrame: 120 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 1 + loopBlendPositionY: 1 + loopBlendPositionXZ: 1 + keepOriginalOrientation: 1 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 1 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: root + weight: 1 + - path: root/ik_foot_root + weight: 1 + - path: root/ik_foot_root/ik_foot_l + weight: 1 + - path: root/ik_foot_root/ik_foot_r + weight: 1 + - path: root/ik_hand_root + weight: 1 + - path: root/ik_hand_root/ik_hand_gun + weight: 1 + - path: root/ik_hand_root/ik_hand_gun/ik_hand_l + weight: 1 + - path: root/ik_hand_root/ik_hand_gun/ik_hand_r + weight: 1 + - path: root/pelvis + weight: 1 + - path: root/pelvis/hipAttach_l + weight: 0 + - path: root/pelvis/hipAttach_r + weight: 0 + - path: root/pelvis/hipAttachBack + weight: 0 + - path: root/pelvis/hipAttachFront + weight: 0 + - path: root/pelvis/spine_01 + weight: 1 + - path: root/pelvis/spine_01/spine_02 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/backAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/shoulderAttach_l + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/elbowAttach_l + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l/index_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l/middle_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l/pinky_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/prop_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l/ring_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l/thumb_03_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/lowerarm_twist_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/upperarm_twist_01_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/shoulderAttach_r + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/elbowAttach_r + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r/index_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r/middle_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r/pinky_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/prop_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r/ring_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r/thumb_03_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/lowerarm_twist_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/upperarm_twist_01_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01 + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_l + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_r + weight: 1 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/faceAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/headAttach + weight: 0 + - path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/jaw + weight: 1 + - path: root/pelvis/thigh_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/calf_twist_01_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/foot_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/foot_l/ball_l + weight: 1 + - path: root/pelvis/thigh_l/calf_l/kneeAttach_l + weight: 0 + - path: root/pelvis/thigh_l/thigh_twist_01_l + weight: 1 + - path: root/pelvis/thigh_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/calf_twist_01_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/foot_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/foot_r/ball_r + weight: 1 + - path: root/pelvis/thigh_r/calf_r/kneeAttach_r + weight: 0 + - path: root/pelvis/thigh_r/thigh_twist_01_r + weight: 1 + - path: SK_DMMY_BASE_01_00BODY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 3daacf102d24acb4aae029057b824d13, type: 2} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 0 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: pelvis + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thigh_l + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thigh_r + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: calf_l + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: calf_r + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: foot_l + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: foot_r + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_01 + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_02 + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: neck_01 + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: clavicle_l + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: clavicle_r + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: upperarm_l + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: upperarm_r + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: lowerarm_l + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: lowerarm_r + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: hand_l + humanName: LeftHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: hand_r + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ball_l + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ball_r + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: eye_l + humanName: LeftEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: eye_r + humanName: RightEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: jaw + humanName: Jaw + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_01_l + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_02_l + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_03_l + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_01_l + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_02_l + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_03_l + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_01_l + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_02_l + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_03_l + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_01_l + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_02_l + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_03_l + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_01_l + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_02_l + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_03_l + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_01_r + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_02_r + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: thumb_03_r + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_01_r + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_02_r + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: index_03_r + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_01_r + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_02_r + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: middle_03_r + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_01_r + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_02_r + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: ring_03_r + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_01_r + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_02_r + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pinky_03_r + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine_03 + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ModularSyntyCharacter(Clone) + parentName: + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: mesh + parentName: ModularSyntyCharacter(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: upperBody + parentName: mesh + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_01HEAD + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_02HAIR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_03EBRL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_04EBRR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_05EYEL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_06EYER + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_07EARL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_08EARR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_10TORS + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_11AUPL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_12AUPR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_13ALWL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_14ALWR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_15HNDL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_16HNDR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_22AHED + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_23AFAC + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_24ABCK + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_29ASHL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_30ASHR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_31AEBL + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_32AEBR + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_35NOSE + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_36TETH + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_37TONG + parentName: upperBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerBody + parentName: mesh + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_17HIPS + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_18LEGL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_19LEGR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_20FOTL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_21FOTR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_25AHPF + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_26AHPB + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_27AHPL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_28AHPR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_33AKNL + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SK_TEST_DEVU_SIMP_RGBG_01_34AKNR + parentName: lowerBody + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: root + parentName: ModularSyntyCharacter(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pelvis + parentName: root + position: {x: -0.0000022523334, y: 0.91021377, z: -0.028169593} + rotation: {x: 0.5, y: -0.5, z: -0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttachFront + parentName: pelvis + position: {x: -0.019410094, y: 0.13986845, z: -0.0000022521172} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttach_l + parentName: pelvis + position: {x: -0.063454054, y: -0.021303682, z: 0.16243535} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttachBack + parentName: pelvis + position: {x: -0.082250975, y: -0.09717253, z: -0.0000022526553} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: hipAttach_r + parentName: pelvis + position: {x: -0.063454054, y: -0.021303682, z: -0.16243985} + rotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: thigh_l + parentName: pelvis + position: {x: 0.027215123, y: -0.0029453347, z: 0.09613058} + rotation: {x: 0.9999093, y: 0.009337232, z: 0.009710422, w: 0.0000427429} + scale: {x: 1, y: 1, z: 1} + - name: thigh_twist_01_l + parentName: thigh_l + position: {x: 0.22210231, y: -9.305644e-10, z: -2.2737367e-15} + rotation: {x: -0.000003299037, y: 0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: calf_l + parentName: thigh_l + position: {x: 0.44581473, y: 0.000072504714, z: -0.0000000019213142} + rotation: {x: -0.0000065918703, y: 0.0000009978124, z: 0.050290126, w: 0.99873465} + scale: {x: 1, y: 1, z: 1} + - name: calf_twist_01_l + parentName: calf_l + position: {x: 0.17972955, y: -0.00000024332752, z: 0.00000005759147} + rotation: {x: 0.0000032780022, y: -0.0000003278709, z: -0.0000013815501, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: foot_l + parentName: calf_l + position: {x: 0.3601809, y: -0.0000020200662, z: 0.00000047907946} + rotation: {x: -0.00039115272, y: -0.0097033065, z: -0.040959746, w: 0.9991136} + scale: {x: 1, y: 1, z: 1} + - name: ball_l + parentName: foot_l + position: {x: 0.055705708, y: -0.111233726, z: 0.0000064460714} + rotation: {x: 0.49303845, y: -0.5058754, z: 0.51279974, w: -0.48789304} + scale: {x: 1, y: 1, z: 1} + - name: kneeAttach_l + parentName: calf_l + position: {x: -0.0052763503, y: -0.053035233, z: -0.007814086} + rotation: {x: 0.70616484, y: -0.035823014, z: -0.02210338, w: 0.70679516} + scale: {x: 1, y: 1, z: 1} + - name: kneeProc_l + parentName: calf_l + position: {x: -0.0007214744, y: 0.0487988, z: -0.0000000032509442} + rotation: {x: -0.49999872, y: 0.50000197, z: 0.50000125, w: -0.4999981} + scale: {x: 1, y: 1, z: 1} + - name: gluteProc_l + parentName: thigh_l + position: {x: 0.07982383, y: 0.08717705, z: -4.316547e-15} + rotation: {x: 0.03576505, y: 0.70620173, z: 0.70620173, w: 0.03576505} + scale: {x: 1, y: 1, z: 1} + - name: thigh_r + parentName: pelvis + position: {x: 0.027215114, y: -0.002945335, z: -0.09613508} + rotation: {x: -0.009336888, y: 0.9999093, z: 0.000042741325, w: -0.00971042} + scale: {x: 1, y: 1, z: 1} + - name: thigh_twist_01_r + parentName: thigh_r + position: {x: -0.22210231, y: 9.305628e-10, z: 1.8296475e-15} + rotation: {x: -0.0000032989917, y: 0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: calf_r + parentName: thigh_r + position: {x: -0.44581473, y: -0.00007250627, z: 0.0000000019213209} + rotation: {x: -0.0000065917798, y: 0.000000997815, z: 0.05029121, w: 0.9987346} + scale: {x: 1, y: 1, z: 1} + - name: calf_twist_01_r + parentName: calf_r + position: {x: -0.17972955, y: 0.00000024333596, z: -0.00000005759147} + rotation: {x: 0.000003277956, y: -0.0000003278709, z: -0.0000013815983, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: foot_r + parentName: calf_r + position: {x: -0.3601809, y: 0.0000020201367, z: -0.00000047907946} + rotation: {x: -0.00039116672, y: -0.0097033065, z: -0.040961176, w: 0.99911356} + scale: {x: 1, y: 1, z: 1} + - name: ball_r + parentName: foot_r + position: {x: -0.0557064, y: 0.111234754, z: -0.00000645117} + rotation: {x: -0.5059259, y: -0.49299014, z: 0.4879391, w: 0.51275253} + scale: {x: 1, y: 1, z: 1} + - name: kneeAttach_r + parentName: calf_r + position: {x: 0.0052765333, y: 0.05303553, z: 0.007814086} + rotation: {x: -0.0004457006, y: -0.009701246, z: -0.04096158, w: 0.99911356} + scale: {x: 1, y: 1, z: 1} + - name: kneeProc_r + parentName: calf_r + position: {x: 0.00072147435, y: -0.048798498, z: 0.0000000032509941} + rotation: {x: 0.50000125, y: 0.4999981, z: 0.49999872, w: 0.50000197} + scale: {x: 1, y: 1, z: 1} + - name: gluteProc_r + parentName: thigh_r + position: {x: -0.079823904, y: -0.087177, z: 4.263256e-15} + rotation: {x: -0.70620173, y: 0.035765298, z: -0.035765298, w: 0.70620173} + scale: {x: 1, y: 1, z: 1} + - name: leg_proportion_l + parentName: pelvis + position: {x: 0.026323471, y: -0.0029619911, z: 0.09611326} + rotation: {x: -0.5094997, y: 0.49045226, z: 0.4997463, w: 0.5001203} + scale: {x: 1, y: 1, z: 1} + - name: leg_proportion_r + parentName: pelvis + position: {x: 0.026323471, y: -0.0029619904, z: -0.096117765} + rotation: {x: 0.5094997, y: -0.4904523, z: 0.49974626, w: 0.5001203} + scale: {x: 1, y: 1, z: 1} + - name: spine_01 + parentName: pelvis + position: {x: -0.039486945, y: 0.0028441222, z: -0.000000058610382} + rotation: {x: 0.9969295, y: -0.07830423, z: 0.00000085288184, w: 0.000010271229} + scale: {x: 1, y: 1, z: 1} + - name: spine_02 + parentName: spine_01 + position: {x: -0.068371974, y: 0.0014307626, z: -0.000000006042418} + rotation: {x: -0.0000000011642847, y: -0.000000047216822, z: -0.024966702, w: 0.99968827} + scale: {x: 1, y: 1, z: 1} + - name: spine_03 + parentName: spine_02 + position: {x: -0.12554944, y: 0.0063453894, z: -3.57232e-10} + rotation: {x: -0.000021314132, y: -0.00037258762, z: -0.050914716, w: 0.99870294} + scale: {x: 1, y: 1, z: 1} + - name: neck_01 + parentName: spine_03 + position: {x: -0.31951433, y: 0.036587797, z: 0.00000072927924} + rotation: {x: -0.001185808, y: -0.008268698, z: 0.13579145, w: 0.9907023} + scale: {x: 1, y: 1, z: 1} + - name: head + parentName: neck_01 + position: {x: -0.100135565, y: 0.00022404436, z: -0.00017833713} + rotation: {x: 0.0012173305, y: 0.008640665, z: -0.138246, w: 0.9903595} + scale: {x: 1, y: 1, z: 1} + - name: headAttach + parentName: head + position: {x: -0.20189163, y: -0.014919091, z: 0.0000010824075} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: jaw + parentName: head + position: {x: 0.00038189514, y: -0.02608602, z: -0.000003383968} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: faceAttach + parentName: head + position: {x: -0.072368294, y: -0.1373822, z: -0.0000019406757} + rotation: {x: 0.50000536, y: -0.5000049, z: 0.49999464, w: 0.4999951} + scale: {x: 1, y: 1, z: 1} + - name: eye_l + parentName: head + position: {x: -0.06599293, y: -0.08166062, z: -0.04100604} + rotation: {x: -0.4998981, y: -0.5001014, z: 0.50010556, w: 0.4998949} + scale: {x: 1, y: 1, z: 1} + - name: eyeLight_l + parentName: head + position: {x: -0.06599293, y: -0.08166062, z: -0.04100604} + rotation: {x: -0.5004372, y: -0.49955237, z: 0.5006456, w: 0.4993637} + scale: {x: 1, y: 1, z: 1} + - name: eye_r + parentName: head + position: {x: -0.06599285, y: -0.08166231, z: 0.04100519} + rotation: {x: 0.49989286, y: 0.50010663, z: -0.5001004, w: -0.4999001} + scale: {x: 1, y: 1, z: 1} + - name: eyeLight_r + parentName: head + position: {x: -0.06599285, y: -0.08166231, z: 0.04100519} + rotation: {x: -0.50052696, y: -0.49948066, z: 0.50071675, w: 0.49927408} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_l + parentName: spine_03 + position: {x: -0.22350082, y: 0.03559616, z: -0.019627647} + rotation: {x: 0.0107471105, y: -0.69317526, z: 0.00030483722, w: 0.72068894} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_l + parentName: clavicle_l + position: {x: -0.17468753, y: 0.000013172175, z: -0.00004209622} + rotation: {x: -0.0100861145, y: -0.036951534, z: -0.011973186, w: 0.99919444} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_twist_01_l + parentName: upperarm_l + position: {x: -0.14148545, y: 8.881784e-18, z: 3.126388e-15} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_l + parentName: upperarm_l + position: {x: -0.28402275, y: -0.00003282442, z: 7.1054274e-15} + rotation: {x: 1.4908279e-16, y: 3.8793845e-14, z: 0.033878356, w: 0.99942595} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_twist_01_l + parentName: lowerarm_l + position: {x: -0.120697714, y: -7.1231905e-15, z: 1.9895197e-15} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: hand_l + parentName: lowerarm_l + position: {x: -0.24188016, y: -1.4876989e-14, z: 3.410605e-15} + rotation: {x: -0.7071068, y: -1.6063768e-14, z: 2.7297773e-14, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: index_01_l + parentName: hand_l + position: {x: -0.10403141, y: -0.012306143, z: -0.02887068} + rotation: {x: -0.055210784, y: -0.04301227, z: -0.011495796, w: 0.9974817} + scale: {x: 1, y: 1, z: 1} + - name: index_02_l + parentName: index_01_l + position: {x: -0.040569592, y: -1.1368684e-15, z: 9.7699626e-17} + rotation: {x: -0.00000014156093, y: 0.00000032782532, z: -0.038601268, w: 0.99925476} + scale: {x: 1, y: 1, z: 1} + - name: index_03_l + parentName: index_02_l + position: {x: -0.03545824, y: -8.5265126e-16, z: -2.5352831e-11} + rotation: {x: 4.7426774e-11, y: -4.7146775e-10, z: -0.032122757, w: 0.99948394} + scale: {x: 1, y: 1, z: 1} + - name: middle_01_l + parentName: hand_l + position: {x: -0.10858404, y: -0.01249719, z: 0.0006551574} + rotation: {x: -0.052811075, y: 0.011621564, z: -0.024697497, w: 0.9982315} + scale: {x: 1, y: 1, z: 1} + - name: middle_02_l + parentName: middle_01_l + position: {x: -0.04281506, y: 0, z: 1.2434498e-16} + rotation: {x: 0.000000055879333, y: -0.00000010803338, z: -0.03812213, w: 0.99927306} + scale: {x: 1, y: 1, z: 1} + - name: middle_03_l + parentName: middle_02_l + position: {x: -0.041363765, y: 2.842171e-16, z: -3.2318485e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ring_01_l + parentName: hand_l + position: {x: -0.104817785, y: -0.010955312, z: 0.029533258} + rotation: {x: -0.058461137, y: 0.02784743, z: -0.01813663, w: 0.99773633} + scale: {x: 1, y: 1, z: 1} + - name: ring_02_l + parentName: ring_01_l + position: {x: -0.039984744, y: 8.5265126e-16, z: 1.4210854e-16} + rotation: {x: -0.000000029802319, y: 0.00000076927233, z: -0.037985075, w: 0.9992783} + scale: {x: 1, y: 1, z: 1} + - name: ring_03_l + parentName: ring_02_l + position: {x: -0.033619042, y: 2.842171e-16, z: -2.6917135e-11} + rotation: {x: 5.9796855e-11, y: -5.2945986e-10, z: -0.036507633, w: 0.9993334} + scale: {x: 1, y: 1, z: 1} + - name: pinky_01_l + parentName: hand_l + position: {x: -0.10075955, y: -0.0028467115, z: 0.050183266} + rotation: {x: -0.049280424, y: 0.05426886, z: -0.00065056776, w: 0.99730945} + scale: {x: 1, y: 1, z: 1} + - name: pinky_02_l + parentName: pinky_01_l + position: {x: -0.027616674, y: 5.1159075e-15, z: 1.5276668e-15} + rotation: {x: 0.000011686231, y: 0.000031877298, z: -0.03867463, w: 0.9992519} + scale: {x: 1, y: 1, z: 1} + - name: pinky_03_l + parentName: pinky_02_l + position: {x: -0.026955087, y: -1.4210854e-15, z: -1.9003394e-11} + rotation: {x: 0.000003738, y: -0.00008235291, z: -0.03240269, w: 0.9994749} + scale: {x: 1, y: 1, z: 1} + - name: thumb_01_l + parentName: hand_l + position: {x: -0.0345987, y: 0.0056171953, z: -0.032003786} + rotation: {x: 0.39697987, y: -0.333253, z: 0.11576028, w: 0.84731865} + scale: {x: 1, y: 1, z: 1} + - name: thumb_02_l + parentName: thumb_01_l + position: {x: -0.054442167, y: 7.81597e-16, z: -2.842171e-16} + rotation: {x: -0.0005483031, y: -0.0031062365, z: -0.039842293, w: 0.99920106} + scale: {x: 1, y: 1, z: 1} + - name: thumb_03_l + parentName: thumb_02_l + position: {x: -0.046614956, y: 2.6076917e-14, z: -2.441169e-11} + rotation: {x: -0.0015578927, y: 0.0017606178, z: -0.11588088, w: 0.9932604} + scale: {x: 1, y: 1, z: 1} + - name: prop_l + parentName: hand_l + position: {x: -0.0882784, y: 0.025021512, z: -0.0035439597} + rotation: {x: -0.7062911, y: -0.0022872484, z: 0.02265892, w: 0.7075552} + scale: {x: 1, y: 1, z: 1} + - name: elbowAttach_l + parentName: lowerarm_l + position: {x: 0.0146771595, y: 0.033135533, z: -0.00792725} + rotation: {x: 0.7071067, y: 0.0023016115, z: -0.022657443, w: 0.70674} + scale: {x: 1, y: 1, z: 1} + - name: elbowProc_l + parentName: lowerarm_l + position: {x: 0.0004847235, y: -0.008592526, z: 0} + rotation: {x: 7.71204e-14, y: -6.90462e-14, z: 0.7071068, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: shoulderAttach_l + parentName: clavicle_l + position: {x: -0.17453544, y: 0.005942992, z: 0.081702344} + rotation: {x: 0.69873434, y: -0.0083530685, z: 0.018672163, w: 0.7150888} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_proportion_l + parentName: clavicle_l + position: {x: -0.17412104, y: 2.6645352e-17, z: -2.842171e-16} + rotation: {x: -0.0100861145, y: -0.036951534, z: -0.011973186, w: 0.99919444} + scale: {x: 1, y: 1, z: 1} + - name: backAttach + parentName: spine_03 + position: {x: -0.19363786, y: 0.14232747, z: 0.00014993476} + rotation: {x: 0.49863327, y: -0.5013733, z: 0.49824864, w: 0.501735} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_r + parentName: spine_03 + position: {x: -0.22347127, y: 0.03559516, z: 0.019966682} + rotation: {x: 0.7201719, y: 0.00031607514, z: -0.69371283, w: 0.01071387} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_r + parentName: clavicle_r + position: {x: -0.17468753, y: -0.000013174365, z: -0.000042095136} + rotation: {x: -0.036951292, y: -0.010065555, z: 0.9991947, w: -0.011973949} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_twist_01_r + parentName: upperarm_r + position: {x: 0.14148547, y: -1.8207657e-16, z: -2.842171e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_r + parentName: upperarm_r + position: {x: 0.28402275, y: -0.00003282442, z: -1.1681323e-13} + rotation: {x: 1.5439825e-16, y: 1.215741e-10, z: -0.033878356, w: 0.99942595} + scale: {x: 1, y: 1, z: 1} + - name: lowerarm_twist_01_r + parentName: lowerarm_r + position: {x: 0.120697714, y: -7.31859e-15, z: -2.9340867e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: hand_r + parentName: lowerarm_r + position: {x: 0.24188016, y: -1.5214496e-14, z: -5.879912e-11} + rotation: {x: -0.7071068, y: 8.5967476e-11, z: 8.5923386e-11, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: index_01_r + parentName: hand_r + position: {x: 0.10403141, y: -0.012306143, z: -0.02887068} + rotation: {x: 0.9974817, y: 0.011495865, z: -0.043012295, w: 0.055210814} + scale: {x: 1, y: 1, z: 1} + - name: index_02_r + parentName: index_01_r + position: {x: 0.040569592, y: -1.4210854e-15, z: -5.7731595e-17} + rotation: {x: 0.00000012293452, y: -0.00000030605574, z: -0.038602415, w: 0.99925464} + scale: {x: 1, y: 1, z: 1} + - name: index_03_r + parentName: index_02_r + position: {x: 0.03545824, y: 0, z: 2.535288e-11} + rotation: {x: 4.742673e-11, y: -4.714677e-10, z: -0.032122757, w: 0.99948394} + scale: {x: 1, y: 1, z: 1} + - name: middle_01_r + parentName: hand_r + position: {x: 0.10858404, y: -0.01249719, z: 0.0006551573} + rotation: {x: 0.99823153, y: 0.024697142, z: 0.0116215665, w: 0.05281112} + scale: {x: 1, y: 1, z: 1} + - name: middle_02_r + parentName: middle_01_r + position: {x: 0.04281506, y: -5.684342e-16, z: -3.5527136e-17} + rotation: {x: -0.0000000037252894, y: -0.00000012759116, z: -0.038124107, w: 0.99927306} + scale: {x: 1, y: 1, z: 1} + - name: middle_03_r + parentName: middle_02_r + position: {x: 0.041363765, y: 8.5265126e-16, z: 3.2318644e-11} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ring_01_r + parentName: hand_r + position: {x: 0.104817785, y: -0.010955312, z: 0.029533258} + rotation: {x: 0.99773645, y: 0.018136974, z: 0.027847247, w: 0.058461092} + scale: {x: 1, y: 1, z: 1} + - name: ring_02_r + parentName: ring_01_r + position: {x: 0.039984744, y: 5.684342e-16, z: -1.7763568e-17} + rotation: {x: -0.00000016763798, y: 0.000000012456433, z: -0.037983324, w: 0.99927837} + scale: {x: 1, y: 1, z: 1} + - name: ring_03_r + parentName: ring_02_r + position: {x: 0.033619042, y: -2.842171e-16, z: 2.6917206e-11} + rotation: {x: 5.979683e-11, y: -5.2945986e-10, z: -0.036507633, w: 0.9993334} + scale: {x: 1, y: 1, z: 1} + - name: pinky_01_r + parentName: hand_r + position: {x: 0.10075955, y: -0.0028467115, z: 0.050183266} + rotation: {x: 0.9973093, y: 0.00065243046, z: 0.054269716, w: 0.04928028} + scale: {x: 1, y: 1, z: 1} + - name: pinky_02_r + parentName: pinky_01_r + position: {x: 0.027616674, y: -3.410605e-15, z: 7.105427e-17} + rotation: {x: 0.0000116303545, y: 0.000032189433, z: -0.038673446, w: 0.9992519} + scale: {x: 1, y: 1, z: 1} + - name: pinky_03_r + parentName: pinky_02_r + position: {x: 0.026955087, y: 8.5265126e-16, z: 1.9003323e-11} + rotation: {x: 0.000003738, y: -0.00008235291, z: -0.03240269, w: 0.9994749} + scale: {x: 1, y: 1, z: 1} + - name: thumb_01_r + parentName: hand_r + position: {x: 0.0345987, y: 0.0056171953, z: -0.032003786} + rotation: {x: 0.84731865, y: -0.11576027, z: -0.3332531, w: -0.39697996} + scale: {x: 1, y: 1, z: 1} + - name: thumb_02_r + parentName: thumb_01_r + position: {x: 0.054442167, y: 7.105427e-17, z: 0} + rotation: {x: -0.00054827315, y: -0.0031055536, z: -0.03984026, w: 0.99920106} + scale: {x: 1, y: 1, z: 1} + - name: thumb_03_r + parentName: thumb_02_r + position: {x: 0.046614956, y: -2.7142732e-14, z: 2.4412259e-11} + rotation: {x: -0.0015578927, y: 0.0017606178, z: -0.11588088, w: 0.9932604} + scale: {x: 1, y: 1, z: 1} + - name: prop_r + parentName: hand_r + position: {x: 0.07457066, y: 0.025728663, z: 0.0000000014503504} + rotation: {x: -0.7062911, y: 0.00228721, z: -0.02265888, w: 0.7075552} + scale: {x: 1, y: 1, z: 1} + - name: elbowAttach_r + parentName: lowerarm_r + position: {x: -0.014928731, y: 0.03443859, z: -0.007937847} + rotation: {x: 0.7071067, y: -0.0023016115, z: 0.022657443, w: 0.70674} + scale: {x: 1, y: 1, z: 1} + - name: elbowProc_r + parentName: lowerarm_r + position: {x: -0.0004847235, y: -0.008592526, z: -3.0656224e-11} + rotation: {x: 0.0000000013522875, y: -0.0000000011803636, z: 0.7071068, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: shoulderAttach_r + parentName: clavicle_r + position: {x: -0.17453538, y: -0.0059396313, z: 0.08170261} + rotation: {x: 0.7150744, y: -0.018671913, z: 0.0083533805, w: 0.698749} + scale: {x: 1, y: 1, z: 1} + - name: upperarm_proportion_r + parentName: clavicle_r + position: {x: -0.17412104, y: -6.2505856e-10, z: -2.842171e-16} + rotation: {x: -0.04028487, y: 0.0007375905, z: 0.9991275, w: -0.01099269} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_proportion_l + parentName: spine_03 + position: {x: -0.22350082, y: 0.03559616, z: -0.019627647} + rotation: {x: 0.019455113, y: -0.0073838024, z: 0.99975294, w: -0.0078149075} + scale: {x: 1, y: 1, z: 1} + - name: clavicle_proportion_r + parentName: spine_03 + position: {x: -0.22347127, y: 0.03559516, z: 0.019966682} + rotation: {x: 0.9997675, y: 0.0077993497, z: 0.018709414, w: 0.007352356} + scale: {x: 1, y: 1, z: 1} + - name: clavLiftProc_r + parentName: spine_03 + position: {x: -0.18473838, y: -0.06660258, z: 0.12045964} + rotation: {x: -0.7450615, y: 0.14694367, z: -0.09542922, w: 0.64357144} + scale: {x: 1, y: 1, z: 1} + - name: clavLiftProc_l + parentName: spine_03 + position: {x: -0.18491796, y: -0.0665965, z: -0.12018347} + rotation: {x: 0.7450063, y: -0.14646097, z: -0.095988885, w: 0.6436621} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_gun + parentName: ik_hand_root + position: {x: 0.71960056, y: 0.050023556, z: 1.3547275} + rotation: {x: 0.9997403, y: -0.014404948, z: -0.017639551, w: 0.00089385436} + scale: {x: 1, y: 1, z: 1} + - name: ik_shoulder_l + parentName: ik_hand_root + position: {x: -0.19433995, y: 0.045976024, z: 1.3732836} + rotation: {x: -0.00029574113, y: -0.017659763, z: -0.019472878, w: 0.9996544} + scale: {x: 1, y: 1, z: 1} + - name: ik_elbow_l + parentName: ik_hand_root + position: {x: -0.47444484, y: 0.54031706, z: 1.3621318} + rotation: {x: -0.7075555, y: -0.000000019191658, z: -0.000000019216037, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_shoulder_r + parentName: ik_hand_root + position: {x: 0.19433989, y: 0.045976024, z: 1.3732836} + rotation: {x: -0.000295744, y: 0.017659709, z: 0.019472878, w: 0.9996544} + scale: {x: 1, y: 1, z: 1} + - name: ik_elbow_r + parentName: ik_hand_root + position: {x: 0.47444475, y: 0.54031706, z: 1.362132} + rotation: {x: -0.7075555, y: -0.000000019191658, z: -0.000000019216037, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_l + parentName: ik_hand_root + position: {x: -0.7196007, y: 0.050023556, z: 1.3547275} + rotation: {x: -0.7075555, y: -0.000000019191656, z: -0.000000019216035, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_r + parentName: ik_hand_root + position: {x: 0.71960056, y: 0.050023556, z: 1.3547275} + rotation: {x: -0.7075555, y: -0.000000019191656, z: -0.000000019216035, w: 0.7066578} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_thigh_l + parentName: ik_foot_root + position: {x: -0.09613283, y: 0.031114928, z: 0.88299865} + rotation: {x: -0.006632646, y: 0.7139089, z: -0.0065721944, w: 0.7001763} + scale: {x: 1, y: 1, z: 1} + - name: ik_knee_l + parentName: ik_foot_root + position: {x: -0.105479695, y: -0.38589245, z: 0.40378192} + rotation: {x: 0.7071068, y: -0.0000000025383675, z: -4.5561075e-18, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_l + parentName: ik_foot_root + position: {x: -0.11175866, y: 0.052343525, z: 0.078439645} + rotation: {x: 0.00003155761, y: 0.7071067, z: -0.000031557604, w: 0.7071069} + scale: {x: 1, y: 1, z: 1} + - name: ik_thigh_r + parentName: ik_foot_root + position: {x: 0.09613283, y: 0.031114928, z: 0.88299865} + rotation: {x: 0.70017636, y: 0.0065719523, z: 0.713909, w: 0.006632399} + scale: {x: 1, y: 1, z: 1} + - name: ik_knee_r + parentName: ik_foot_root + position: {x: 0.1054814, y: -0.3858974, z: 0.4037803} + rotation: {x: -0.7071068, y: -4.5561075e-18, z: 0.0000000025383673, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_r + parentName: ik_foot_root + position: {x: 0.11175866, y: 0.05234486, z: 0.07843973} + rotation: {x: 0.7071069, y: 0.000031558906, z: 0.7071067, w: -0.000031558913} + scale: {x: 1, y: 1, z: 1} + - name: ik_settings + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_l_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_hand_r_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_l_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_foot_r_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_settings + parentName: ik_settings + position: {x: -0.01, y: 0.01, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_body_settings + parentName: ik_settings + position: {x: -0.01, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_look_root + parentName: root + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_aim + parentName: ik_look_root + position: {x: -0.002099508, y: -0.9533491, z: 1.5590109} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_eyes_aim + parentName: ik_look_root + position: {x: -0.002081081, y: -0.9533491, z: 1.6285093} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: ik_head_orient + parentName: ik_look_root + position: {x: -0.0020982705, y: 0.017804349, z: 2.0683122} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: b9745fea1f5904242a93d6838cb1b985, + type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Animations/Controllers/AC_Player_Default.controller b/Assets/_Game/Animations/Controllers/AC_Player_Default.controller index 983e89ed..111d8c87 100644 --- a/Assets/_Game/Animations/Controllers/AC_Player_Default.controller +++ b/Assets/_Game/Animations/Controllers/AC_Player_Default.controller @@ -79,11 +79,21 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -1032254959699123210} m_Position: {x: -450, y: 270, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1111345123456789012} + m_Position: {x: -700, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1111345123456789013} + m_Position: {x: -980, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1111345123456789014} + m_Position: {x: -1260, y: 140, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: - {fileID: -754003289131015157} - {fileID: 469741948129995159} - {fileID: 6228136561094308872} + - {fileID: 1111345123456789021} m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] @@ -323,6 +333,18 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} + - m_Name: Down + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Recover + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -437,6 +459,181 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &1111345123456789012 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DownBegin + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1111345123456789022} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 3325809351021969952, guid: 9f1ccf176a8592d4997f8a7c48f9571f, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1111345123456789013 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DownLoop + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1111345123456789023} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 4349338778344460676, guid: b0e7c1111468a924a81b4323e5aa8eb4, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1111345123456789014 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Recover + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1111345123456789024} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3512901111006340046, guid: 3866152d4c1922849be562e6e814dce3, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1111345123456789021 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Down + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1111345123456789012} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.05 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &1111345123456789022 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1111345123456789013} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.05 + m_TransitionOffset: 0 + m_ExitTime: 0.95 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &1111345123456789023 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Recover + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1111345123456789014} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.05 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &1111345123456789024 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7908033645098541312} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.1 + m_TransitionOffset: 0 + m_ExitTime: 0.95 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &7693173606830535998 AnimatorState: serializedVersion: 6 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset new file mode 100644 index 00000000..bb7a2d81 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41c96b54a96cdb84c9bda774775b0a1a, type: 3} + m_Name: "Data_SkillEffect_Player_\uB2E4\uC6B4" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DownEffect + targetType: 0 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 0 + areaRadius: 3 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + duration: 1 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset.meta new file mode 100644 index 00000000..68caace4 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_다운.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e95f5df9caf4134d956c476bb8079e0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_BossTemplate.prefab b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_BossTemplate.prefab index 519481b4..498cda9c 100644 --- a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_BossTemplate.prefab +++ b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_BossTemplate.prefab @@ -20,7 +20,6 @@ GameObject: - component: {fileID: 11400005} - component: {fileID: 11400006} - component: {fileID: 3792588902782784034} - - component: {fileID: 9069822911508997612} m_Layer: 0 m_Name: Prefab_Boss_BossTemplate m_TagString: Untagged @@ -291,23 +290,3 @@ MonoBehaviour: SwitchTransformSpaceWhenParented: 0 Interpolate: 1 SlerpPosition: 0 ---- !u!114 &9069822911508997612 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100000} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.Components.NetworkAnimator - ShowTopMostFoldoutHeaderGroup: 1 - NetworkAnimatorExpanded: 0 - AuthorityMode: 0 - m_Animator: {fileID: 9500000} - TransitionStateInfoList: [] - AnimatorParameterEntries: - ParameterEntries: [] - AnimatorParametersExpanded: 0 diff --git a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab index 432cb02b..9a9e5f2e 100644 --- a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab +++ b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab @@ -243,6 +243,14 @@ MonoBehaviour: NameHash: 20298039 Synchronize: 1 ParameterType: 9 + - name: Down + NameHash: -1127399675 + Synchronize: 1 + ParameterType: 9 + - name: Recover + NameHash: 976603345 + Synchronize: 1 + ParameterType: 9 AnimatorParametersExpanded: 0 --- !u!95 &3426985706796420257 Animator: @@ -305,6 +313,8 @@ MonoBehaviour: debugMode: 1 showAreaDebug: 1 debugDrawDuration: 1 + lastCancelledSkillName: + lastCancelReason: 0 --- !u!114 &6585367215453362640 MonoBehaviour: m_ObjectHideFlags: 0 @@ -345,6 +355,7 @@ MonoBehaviour: ShowTopMostFoldoutHeaderGroup: 1 characterStats: {fileID: -5132198055668300151} networkController: {fileID: 1664515335065415329} + skillController: {fileID: 0} --- !u!114 &3552488436187204500 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs index 534cbcf0..2288f485 100644 --- a/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs +++ b/Assets/_Game/Scripts/Abnormalities/AbnormalityManager.cs @@ -4,6 +4,7 @@ using UnityEngine; using Unity.Netcode; using Colosseum.Stats; using Colosseum.Player; +using Colosseum.Skills; namespace Colosseum.Abnormalities { @@ -20,6 +21,9 @@ namespace Colosseum.Abnormalities [Tooltip("PlayerNetworkController 컴포넌트 (HP/MP 관리용)")] [SerializeField] private PlayerNetworkController networkController; + [Tooltip("스킬 실행 관리자 (강제 취소 처리용)")] + [SerializeField] private SkillController skillController; + // 활성화된 이상 상태 목록 private readonly List activeAbnormalities = new List(); @@ -108,6 +112,9 @@ namespace Colosseum.Abnormalities if (networkController == null) networkController = GetComponent(); + if (skillController == null) + skillController = GetComponent(); + syncedAbnormalities = new NetworkList(); } @@ -414,9 +421,12 @@ namespace Colosseum.Abnormalities private void ApplyControlEffect(AbnormalityData data) { + bool enteredStun = false; + switch (data.controlType) { case ControlType.Stun: + enteredStun = stunCount == 0; stunCount++; break; @@ -434,6 +444,11 @@ namespace Colosseum.Abnormalities } SyncControlEffects(); + + if (enteredStun) + { + TryCancelCurrentSkill(SkillCancelReason.Stun, data.abnormalityName); + } } private void RemoveControlEffect(AbnormalityData data) @@ -584,6 +599,17 @@ namespace Colosseum.Abnormalities Debug.Log($"[Abnormality] Cleared all abnormalities on death: {gameObject.name}"); } + private void TryCancelCurrentSkill(SkillCancelReason reason, string sourceName) + { + if (!IsServer || skillController == null || !skillController.IsPlayingAnimation) + return; + + if (skillController.CancelSkill(reason)) + { + Debug.Log($"[Abnormality] Cancelled skill because '{sourceName}' applied to {gameObject.name}"); + } + } + private AbnormalityData FindAbnormalityDataById(int instanceId) { var allData = Resources.FindObjectsOfTypeAll(); diff --git a/Assets/_Game/Scripts/Enemy/EnemyBase.cs b/Assets/_Game/Scripts/Enemy/EnemyBase.cs index fc8ad0e4..f472b104 100644 --- a/Assets/_Game/Scripts/Enemy/EnemyBase.cs +++ b/Assets/_Game/Scripts/Enemy/EnemyBase.cs @@ -7,6 +7,7 @@ using Unity.Netcode; using Colosseum.Stats; using Colosseum.Combat; +using Colosseum.Skills; namespace Colosseum.Enemy { @@ -347,7 +348,7 @@ namespace Colosseum.Enemy var skillController = GetComponent(); if (skillController != null) { - skillController.CancelSkill(); + skillController.CancelSkill(SkillCancelReason.Death); } // 모든 클라이언트에서 사망 애니메이션 재생 @@ -383,6 +384,12 @@ namespace Colosseum.Enemy { animator.Rebind(); } + + var skillController = GetComponent(); + if (skillController != null) + { + skillController.CancelSkill(SkillCancelReason.Respawn); + } } // 체력 변화 이벤트 전파 diff --git a/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs b/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs new file mode 100644 index 00000000..bb629c28 --- /dev/null +++ b/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs @@ -0,0 +1,4 @@ +namespace Colosseum.Network +{ + // 임시 삭제 후 Unity 컴파일 캐시 정리를 위한 빈 파일 +} diff --git a/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs.meta b/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs.meta new file mode 100644 index 00000000..dfa2350c --- /dev/null +++ b/Assets/_Game/Scripts/Network/EditorPlayHostBootstrap.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f55c7f03b6f5b6e448b8d03880306bb3 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Player/HitReactionController.cs b/Assets/_Game/Scripts/Player/HitReactionController.cs new file mode 100644 index 00000000..dc6552ce --- /dev/null +++ b/Assets/_Game/Scripts/Player/HitReactionController.cs @@ -0,0 +1,211 @@ +using UnityEngine; + +using Unity.Netcode; + +using Colosseum.Skills; + +namespace Colosseum.Player +{ + ///

+ /// 플레이어의 피격 제어 상태를 관리합니다. + /// 넉백 강제 이동과 다운 상태, 피격 애니메이션 재생을 담당합니다. + /// + [DisallowMultipleComponent] + [RequireComponent(typeof(PlayerMovement))] + public class HitReactionController : NetworkBehaviour + { + [Header("References")] + [Tooltip("플레이어 이동 컴포넌트")] + [SerializeField] private PlayerMovement playerMovement; + + [Tooltip("스킬 실행 관리자")] + [SerializeField] private SkillController skillController; + + [Tooltip("플레이어 네트워크 상태")] + [SerializeField] private PlayerNetworkController networkController; + + [Tooltip("피격 애니메이션을 재생할 Animator")] + [SerializeField] private Animator animator; + + [Header("Animation")] + [Tooltip("일반 피격 트리거 이름")] + [SerializeField] private string hitTriggerParam = "Hit"; + + [Tooltip("다운 시작 트리거 이름")] + [SerializeField] private string downTriggerParam = "Down"; + + [Tooltip("기상 트리거 이름")] + [SerializeField] private string recoverTriggerParam = "Recover"; + + [Header("Settings")] + [Tooltip("애니메이션 파라미터가 없을 때 경고 로그 출력")] + [SerializeField] private bool logMissingAnimationParams = false; + + private readonly NetworkVariable isDowned = new NetworkVariable(false); + private float downRemainingTime; + + /// + /// 다운 상태 여부 + /// + public bool IsDowned => isDowned.Value; + + /// + /// 넉백 강제 이동 진행 여부 + /// + public bool IsKnockbackActive => playerMovement != null && playerMovement.IsForcedMoving; + + private void Awake() + { + ResolveReferences(); + } + + public override void OnNetworkSpawn() + { + ResolveReferences(); + } + + private void Update() + { + if (!IsServer || !isDowned.Value) + return; + + downRemainingTime -= Time.deltaTime; + if (downRemainingTime <= 0f) + { + RecoverFromDown(); + } + } + + /// + /// 넉백을 적용합니다. + /// + public void ApplyKnockback(Vector3 worldVelocity, float duration, bool playHitAnimation = true) + { + if (!IsServer) + return; + + ResolveReferences(); + + if (networkController != null && networkController.IsDead) + return; + + playerMovement?.ApplyForcedMovement(worldVelocity, duration); + + if (playHitAnimation) + { + TriggerAnimationRpc(hitTriggerParam); + } + } + + /// + /// 다운 상태를 적용합니다. + /// + public void ApplyDown(float duration) + { + if (!IsServer) + return; + + ResolveReferences(); + + if (networkController != null && networkController.IsDead) + return; + + downRemainingTime = Mathf.Max(downRemainingTime, duration); + + if (isDowned.Value) + return; + + isDowned.Value = true; + skillController?.CancelSkill(SkillCancelReason.HitReaction); + playerMovement?.ClearForcedMovement(); + TriggerAnimationRpc(downTriggerParam); + } + + /// + /// 다운 상태를 해제합니다. + /// + public void RecoverFromDown() + { + if (!IsServer || !isDowned.Value) + return; + + isDowned.Value = false; + downRemainingTime = 0f; + TriggerAnimationRpc(recoverTriggerParam); + } + + /// + /// 피격 상태를 즉시 초기화합니다. + /// + public void ClearHitReactionState(bool playRecoverAnimation = false) + { + if (!IsServer) + return; + + ResolveReferences(); + + playerMovement?.ClearForcedMovement(); + + if (!isDowned.Value) + return; + + isDowned.Value = false; + downRemainingTime = 0f; + + if (playRecoverAnimation) + { + TriggerAnimationRpc(recoverTriggerParam); + } + } + + [Rpc(SendTo.Everyone)] + private void TriggerAnimationRpc(string triggerName) + { + ResolveReferences(); + + if (animator == null || string.IsNullOrWhiteSpace(triggerName)) + return; + + if (!HasTrigger(triggerName)) + { + if (logMissingAnimationParams) + { + Debug.LogWarning($"[HitReaction] Animator trigger not found: {triggerName}"); + } + return; + } + + animator.SetTrigger(triggerName); + } + + private bool HasTrigger(string triggerName) + { + if (animator == null || string.IsNullOrWhiteSpace(triggerName)) + return false; + + for (int i = 0; i < animator.parameterCount; i++) + { + AnimatorControllerParameter parameter = animator.GetParameter(i); + if (parameter.type == AnimatorControllerParameterType.Trigger && parameter.name == triggerName) + return true; + } + + return false; + } + + private void ResolveReferences() + { + if (playerMovement == null) + playerMovement = GetComponent(); + + if (skillController == null) + skillController = GetComponent(); + + if (networkController == null) + networkController = GetComponent(); + + if (animator == null) + animator = GetComponentInChildren(); + } + } +} diff --git a/Assets/_Game/Scripts/Player/HitReactionController.cs.meta b/Assets/_Game/Scripts/Player/HitReactionController.cs.meta new file mode 100644 index 00000000..470c6a6b --- /dev/null +++ b/Assets/_Game/Scripts/Player/HitReactionController.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ebad07a2d5fc29b4ba061866bfa1568e \ No newline at end of file diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs index b32c0521..1cd7d7fa 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityDebugHUD.cs @@ -93,7 +93,7 @@ namespace Colosseum.Player GUILayout.Label($"사망 상태: {(networkController != null && networkController.IsDead ? "Dead" : "Alive")}"); if (TryGetComponent(out var actionState)) { - GUILayout.Label($"무적 상태: {(actionState.IsDamageImmune ? "Immune" : "Normal")} / 이동:{actionState.CanMove} / 스킬:{actionState.CanUseSkills}"); + GUILayout.Label($"무적:{(actionState.IsDamageImmune ? "On" : "Off")} / 다운:{(actionState.IsDowned ? "On" : "Off")} / 이동:{actionState.CanMove} / 스킬:{actionState.CanUseSkills}"); } GUILayout.Label("입력 예시: 기절 / Data_Abnormality_Player_Stun / 0"); diff --git a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs index 2d05cd77..cbc54fa2 100644 --- a/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs +++ b/Assets/_Game/Scripts/Player/PlayerAbnormalityVerificationRunner.cs @@ -27,6 +27,8 @@ namespace Colosseum.Player [SerializeField] private PlayerNetworkController networkController; [SerializeField] private PlayerSkillInput skillInput; [SerializeField] private SkillController skillController; + [SerializeField] private PlayerMovement playerMovement; + [SerializeField] private HitReactionController hitReactionController; [Header("Test Data")] [SerializeField] private AbnormalityData stunData; @@ -84,7 +86,7 @@ namespace Colosseum.Player ResolveReferences(); LoadDefaultAssetsIfNeeded(); - if (abnormalityManager == null || actionState == null || networkController == null || stunData == null || silenceData == null) + if (abnormalityManager == null || actionState == null || networkController == null || playerMovement == null || hitReactionController == null || stunData == null || silenceData == null) { Debug.LogWarning("[AbnormalityVerification] Missing references or test data."); yield break; @@ -105,9 +107,16 @@ namespace Colosseum.Player Verify("초기 상태: 이동 가능", actionState.CanMove); Verify("초기 상태: 스킬 사용 가능", actionState.CanUseSkills); Verify("초기 상태: 무적 상태 아님", !actionState.IsDamageImmune); + Verify("초기 상태: 마지막 취소 이유 없음", skillController == null || skillController.LastCancelReason == SkillCancelReason.None); yield return RunInvincibilitySkillVerification(); + yield return RunStunCancellationVerification(); + + yield return RunDownVerification(); + + yield return RunKnockbackVerification(); + abnormalityManager.ApplyAbnormality(stunData, gameObject); yield return new WaitForSeconds(settleDelay); @@ -187,6 +196,10 @@ namespace Colosseum.Player skillInput = GetComponent(); if (skillController == null) skillController = GetComponent(); + if (playerMovement == null) + playerMovement = GetComponent(); + if (hitReactionController == null) + hitReactionController = GetComponent(); } private void LoadDefaultAssetsIfNeeded() @@ -276,6 +289,109 @@ namespace Colosseum.Player Verify("무적 해제: IsDamageImmune false", !actionState.IsDamageImmune); } + private IEnumerator RunStunCancellationVerification() + { + SkillData cancellableSkill = FindCancellableSkill(); + if (cancellableSkill == null) + { + AppendLine("[SKIP] 기절 강제 취소 검증: 테스트용 스킬이 없습니다."); + yield break; + } + + if (skillController != null) + { + yield return WaitForConditionOrTimeout(() => !skillController.IsPlayingAnimation, 1.5f); + } + + if (skillController == null || !skillController.ExecuteSkill(cancellableSkill)) + { + Verify("기절 강제 취소 검증: 스킬 실행 성공", false); + yield break; + } + + yield return new WaitForSeconds(0.05f); + + abnormalityManager.ApplyAbnormality(stunData, gameObject); + yield return WaitForConditionOrTimeout(() => abnormalityManager.IsStunned, settleDelay + 0.5f); + yield return new WaitForSeconds(0.05f); + + Verify("기절 강제 취소: 스킬 애니메이션 중단", !skillController.IsPlayingAnimation); + Verify("기절 강제 취소: 취소 이유 기록", skillController.LastCancelReason == SkillCancelReason.Stun); + + yield return new WaitForSeconds(stunData.duration + settleDelay); + } + + private IEnumerator RunKnockbackVerification() + { + abnormalityManager.RemoveAllAbnormalities(); + hitReactionController.ClearHitReactionState(); + yield return new WaitForSeconds(settleDelay); + + Vector3 startPosition = transform.position; + Vector3 knockbackVelocity = Vector3.back * 6f; + + RequestKnockbackRpc(knockbackVelocity, 0.2f); + yield return new WaitForSeconds(0.3f); + + float movedDistance = Vector3.Distance(startPosition, transform.position); + Verify("넉백 적용: 위치 이동 발생", movedDistance > 0.2f); + Verify("넉백 적용: 강제 이동 종료", !playerMovement.IsForcedMoving); + } + + private IEnumerator RunDownVerification() + { + SkillData cancellableSkill = FindCancellableSkill(); + if (cancellableSkill == null) + { + AppendLine("[SKIP] 다운 검증: 테스트용 스킬이 없습니다."); + yield break; + } + + if (skillController != null) + { + yield return WaitForConditionOrTimeout(() => !skillController.IsPlayingAnimation, 1.5f); + } + + if (skillController == null || !skillController.ExecuteSkill(cancellableSkill)) + { + Verify("다운 강제 취소 검증: 스킬 실행 성공", false); + yield break; + } + + yield return new WaitForSeconds(0.05f); + + RequestDownRpc(0.6f); + yield return WaitForConditionOrTimeout(() => hitReactionController.IsDowned, settleDelay + 0.5f); + yield return new WaitForSeconds(0.05f); + + Verify("다운 적용: IsDowned", hitReactionController.IsDowned); + Verify("다운 적용: ActionState.IsDowned", actionState.IsDowned); + Verify("다운 강제 취소: 스킬 애니메이션 중단", !skillController.IsPlayingAnimation); + Verify("다운 강제 취소: 취소 이유 기록", skillController.LastCancelReason == SkillCancelReason.HitReaction); + Verify("다운 적용: 이동 불가", !actionState.CanMove); + Verify("다운 적용: 점프 불가", !actionState.CanJump); + Verify("다운 적용: 스킬 사용 불가", !actionState.CanUseSkills); + Verify("다운 적용: 이동속도 0", Mathf.Approximately(actionState.MoveSpeedMultiplier, 0f)); + + yield return WaitForConditionOrTimeout(() => !hitReactionController.IsDowned, 1.5f); + + Verify("다운 해제: IsDowned false", !hitReactionController.IsDowned); + Verify("다운 해제: 이동 가능 복구", actionState.CanMove); + Verify("다운 해제: 스킬 사용 가능 복구", actionState.CanUseSkills); + } + + [Rpc(SendTo.Server)] + private void RequestDownRpc(float duration) + { + hitReactionController?.ApplyDown(duration); + } + + [Rpc(SendTo.Server)] + private void RequestKnockbackRpc(Vector3 velocity, float duration) + { + hitReactionController?.ApplyKnockback(velocity, duration, false); + } + private float GetSkillDuration(SkillData skill) { if (skill == null || skill.SkillClip == null) @@ -284,6 +400,21 @@ namespace Colosseum.Player return Mathf.Max(settleDelay, skill.SkillClip.length / Mathf.Max(0.1f, skill.AnimationSpeed)); } + private SkillData FindCancellableSkill() + { + if (skillInput == null) + return null; + + for (int i = 0; i < 6; i++) + { + SkillData skill = skillInput.GetSkill(i); + if (skill != null) + return skill; + } + + return null; + } + private IEnumerator WaitForConditionOrTimeout(Func predicate, float timeout) { float elapsed = 0f; diff --git a/Assets/_Game/Scripts/Player/PlayerActionState.cs b/Assets/_Game/Scripts/Player/PlayerActionState.cs index c10a4dbb..a08f75af 100644 --- a/Assets/_Game/Scripts/Player/PlayerActionState.cs +++ b/Assets/_Game/Scripts/Player/PlayerActionState.cs @@ -22,6 +22,9 @@ namespace Colosseum.Player [Tooltip("스킬 실행 관리자")] [SerializeField] private SkillController skillController; + [Tooltip("피격 제어 관리자")] + [SerializeField] private HitReactionController hitReactionController; + [Tooltip("관전 관리자")] [SerializeField] private PlayerSpectator spectator; @@ -35,6 +38,11 @@ namespace Colosseum.Player ///
public bool IsStunned => abnormalityManager != null && abnormalityManager.IsStunned; + /// + /// 다운 상태 여부 + /// + public bool IsDowned => hitReactionController != null && hitReactionController.IsDowned; + /// /// 침묵 상태 여부 /// @@ -68,17 +76,17 @@ namespace Colosseum.Player /// /// 플레이어가 직접 이동 입력을 사용할 수 있는지 여부 /// - public bool CanMove => CanReceiveInput && !IsStunned && !BlocksMovementForCurrentSkill(); + public bool CanMove => CanReceiveInput && !IsStunned && !IsDowned && !BlocksMovementForCurrentSkill(); /// /// 점프 가능 여부 /// - public bool CanJump => CanReceiveInput && !IsStunned && !BlocksJumpForCurrentSkill(); + public bool CanJump => CanReceiveInput && !IsStunned && !IsDowned && !BlocksJumpForCurrentSkill(); /// /// 일반 스킬 시작 가능 여부 /// - public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksSkillUseForCurrentSkill(); + public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsDowned && !IsSilenced && !BlocksSkillUseForCurrentSkill(); /// /// 특정 스킬의 시작 가능 여부. @@ -89,7 +97,7 @@ namespace Colosseum.Player if (skill == null) return false; - if (!CanReceiveInput || IsStunned || IsSilenced) + if (!CanReceiveInput || IsStunned || IsDowned || IsSilenced) return false; return !BlocksSkillUseForCurrentSkill(); @@ -102,7 +110,7 @@ namespace Colosseum.Player { get { - if (!CanReceiveInput || IsStunned) + if (!CanReceiveInput || IsStunned || IsDowned) return 0f; return abnormalityManager != null ? abnormalityManager.MoveSpeedMultiplier : 1f; @@ -117,6 +125,8 @@ namespace Colosseum.Player abnormalityManager = GetComponent(); if (skillController == null) skillController = GetComponent(); + if (hitReactionController == null) + hitReactionController = GetOrCreateHitReactionController(); if (spectator == null) spectator = GetComponentInChildren(); } @@ -144,5 +154,14 @@ namespace Colosseum.Player return CurrentSkill == null || CurrentSkill.BlockOtherSkillsWhileCasting; } + + private HitReactionController GetOrCreateHitReactionController() + { + HitReactionController foundController = GetComponent(); + if (foundController != null) + return foundController; + + return gameObject.AddComponent(); + } } } diff --git a/Assets/_Game/Scripts/Player/PlayerMovement.cs b/Assets/_Game/Scripts/Player/PlayerMovement.cs index 03b406f5..cf10f556 100644 --- a/Assets/_Game/Scripts/Player/PlayerMovement.cs +++ b/Assets/_Game/Scripts/Player/PlayerMovement.cs @@ -34,6 +34,8 @@ namespace Colosseum.Player private InputSystem_Actions inputActions; private bool isJumping; private bool wasGrounded; + private Vector3 forcedMovementVelocity; + private float forcedMovementRemaining; // 클라이언트가 기록, 서버가 소비하는 월드 스페이스 이동 방향 private NetworkVariable netMoveInput = new NetworkVariable( @@ -48,6 +50,7 @@ namespace Colosseum.Player public float CurrentMoveSpeed => netMoveInput.Value.magnitude * moveSpeed * GetMoveSpeedMultiplier(); public bool IsGrounded => characterController != null ? characterController.isGrounded : false; public bool IsJumping => isJumping; + public bool IsForcedMoving => forcedMovementRemaining > 0f && forcedMovementVelocity.sqrMagnitude > 0.0001f; public override void OnNetworkSpawn() { @@ -115,6 +118,7 @@ namespace Colosseum.Player { CleanupInputActions(); moveInput = Vector2.zero; + ClearForcedMovement(); } private void OnEnable() @@ -143,6 +147,7 @@ namespace Colosseum.Player public override void OnNetworkDespawn() { CleanupInputActions(); + ClearForcedMovement(); } private void OnMovePerformed(InputAction.CallbackContext context) => moveInput = context.ReadValue(); @@ -259,10 +264,12 @@ namespace Colosseum.Player { if (characterController == null) return; + Vector3 forcedDelta = ConsumeForcedMovementDelta(Time.deltaTime); + if (skillController != null && skillController.IsPlayingAnimation) { if (!skillController.UsesRootMotion) - characterController.Move(velocity * Time.deltaTime); + characterController.Move(velocity * Time.deltaTime + forcedDelta); return; } @@ -278,7 +285,7 @@ namespace Colosseum.Player moveDirection = Vector3.zero; float actualMoveSpeed = moveSpeed * GetMoveSpeedMultiplier(); - characterController.Move((moveDirection * actualMoveSpeed + velocity) * Time.deltaTime); + characterController.Move((moveDirection * actualMoveSpeed + velocity) * Time.deltaTime + forcedDelta); if (moveDirection != Vector3.zero) { @@ -323,6 +330,33 @@ namespace Colosseum.Player return actionState.MoveSpeedMultiplier; } + /// + /// 넉백처럼 입력과 무관한 강제 이동을 적용합니다. + /// + public void ApplyForcedMovement(Vector3 worldVelocity, float duration) + { + if (!IsServer) + return; + + if (duration <= 0f || worldVelocity.sqrMagnitude <= 0.0001f) + { + ClearForcedMovement(); + return; + } + + forcedMovementVelocity = worldVelocity; + forcedMovementRemaining = duration; + } + + /// + /// 강제 이동 상태를 즉시 초기화합니다. + /// + public void ClearForcedMovement() + { + forcedMovementVelocity = Vector3.zero; + forcedMovementRemaining = 0f; + } + private PlayerActionState GetOrCreateActionState() { var foundState = GetComponent(); @@ -343,6 +377,7 @@ namespace Colosseum.Player if (!skillController.UsesRootMotion) return; Vector3 deltaPosition = animator.deltaPosition; + Vector3 forcedDelta = ConsumeForcedMovementDelta(Time.deltaTime); if (blockedDirection != Vector3.zero) { @@ -357,11 +392,11 @@ namespace Colosseum.Player if (skillController.IgnoreRootMotionY) { deltaPosition.y = 0f; - characterController.Move(deltaPosition + velocity * Time.deltaTime); + characterController.Move(deltaPosition + velocity * Time.deltaTime + forcedDelta); } else { - characterController.Move(deltaPosition); + characterController.Move(deltaPosition + forcedDelta); } if (animator.deltaRotation != Quaternion.identity) @@ -372,5 +407,22 @@ namespace Colosseum.Player wasGrounded = characterController.isGrounded; } + + private Vector3 ConsumeForcedMovementDelta(float deltaTime) + { + if (forcedMovementRemaining <= 0f || forcedMovementVelocity.sqrMagnitude <= 0.0001f) + return Vector3.zero; + + float appliedDeltaTime = Mathf.Min(deltaTime, forcedMovementRemaining); + forcedMovementRemaining = Mathf.Max(0f, forcedMovementRemaining - appliedDeltaTime); + + Vector3 delta = forcedMovementVelocity * appliedDeltaTime; + if (forcedMovementRemaining <= 0f) + { + forcedMovementVelocity = Vector3.zero; + } + + return delta; + } } } diff --git a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs index b43072f8..5c0a8e29 100644 --- a/Assets/_Game/Scripts/Player/PlayerNetworkController.cs +++ b/Assets/_Game/Scripts/Player/PlayerNetworkController.cs @@ -176,9 +176,16 @@ namespace Colosseum.Player var movement = GetComponent(); if (movement != null) { + movement.ClearForcedMovement(); movement.enabled = false; } + var hitReactionController = GetComponent(); + if (hitReactionController != null) + { + hitReactionController.ClearHitReactionState(); + } + // 스킬 입력 비활성화 var skillInput = GetComponent(); if (skillInput != null) @@ -190,7 +197,7 @@ namespace Colosseum.Player var skillController = GetComponent(); if (skillController != null) { - skillController.CancelSkill(); + skillController.CancelSkill(SkillCancelReason.Death); } // 모든 클라이언트에서 사망 애니메이션 재생 @@ -222,9 +229,16 @@ namespace Colosseum.Player var movement = GetComponent(); if (movement != null) { + movement.ClearForcedMovement(); movement.enabled = true; } + var hitReactionController = GetComponent(); + if (hitReactionController != null) + { + hitReactionController.ClearHitReactionState(); + } + // 스킬 입력 재활성화 var skillInput = GetComponent(); if (skillInput != null) @@ -239,6 +253,12 @@ namespace Colosseum.Player animator.Rebind(); } + var skillController = GetComponent(); + if (skillController != null) + { + skillController.CancelSkill(SkillCancelReason.Respawn); + } + OnRespawned?.Invoke(this); Debug.Log($"[Player] Player {OwnerClientId} respawned!"); diff --git a/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs new file mode 100644 index 00000000..68cbf901 --- /dev/null +++ b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs @@ -0,0 +1,42 @@ +using UnityEngine; + +using Colosseum.Player; + +namespace Colosseum.Skills.Effects +{ + /// + /// 대상에게 다운 상태를 적용하는 스킬 효과입니다. + /// + [CreateAssetMenu(fileName = "DownEffect", menuName = "Colosseum/Skills/Effects/Down")] + public class DownEffect : SkillEffect + { + [Header("Settings")] + [Tooltip("다운 지속 시간")] + [Min(0f)] [SerializeField] private float duration = 1f; + + /// + /// 다운 지속 시간 + /// + public float Duration => duration; + + /// + /// 다운 효과를 적용합니다. + /// + protected override void ApplyEffect(GameObject source, GameObject target) + { + if (target == null) + { + Debug.LogWarning("[DownEffect] Target is null."); + return; + } + + if (!target.TryGetComponent(out HitReactionController hitReactionController)) + { + Debug.LogWarning($"[DownEffect] HitReactionController not found on target: {target.name}"); + return; + } + + hitReactionController.ApplyDown(duration); + } + } +} diff --git a/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs.meta b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs.meta new file mode 100644 index 00000000..c78ba54f --- /dev/null +++ b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 41c96b54a96cdb84c9bda774775b0a1a \ No newline at end of file diff --git a/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs b/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs index b8bdf1e1..312ef20f 100644 --- a/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs +++ b/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs @@ -1,5 +1,7 @@ using UnityEngine; +using Colosseum.Player; + namespace Colosseum.Skills.Effects { /// @@ -11,6 +13,7 @@ namespace Colosseum.Skills.Effects [Header("Knockback Settings")] [Min(0f)] [SerializeField] private float force = 5f; [SerializeField] private float upwardForce = 2f; + [Min(0.05f)] [SerializeField] private float duration = 0.2f; protected override void ApplyEffect(GameObject caster, GameObject target) { @@ -18,13 +21,23 @@ namespace Colosseum.Skills.Effects Vector3 direction = target.transform.position - caster.transform.position; direction.y = 0f; - direction.Normalize(); + if (direction.sqrMagnitude <= 0.0001f) + direction = caster.transform.forward; + else + direction.Normalize(); - Vector3 knockback = direction * force + Vector3.up * upwardForce; + Vector3 knockbackVelocity = direction * force + Vector3.up * upwardForce; - // TODO: 실제 물리 시스템 연동 - // if (target.TryGetComponent(out var rb)) - // rb.AddForce(knockback, ForceMode.Impulse); + if (target.TryGetComponent(out var hitReactionController)) + { + hitReactionController.ApplyKnockback(knockbackVelocity, duration); + return; + } + + if (target.TryGetComponent(out var playerMovement)) + { + playerMovement.ApplyForcedMovement(knockbackVelocity, duration); + } } } } diff --git a/Assets/_Game/Scripts/Skills/SkillController.cs b/Assets/_Game/Scripts/Skills/SkillController.cs index 1ef622c3..51e19739 100644 --- a/Assets/_Game/Scripts/Skills/SkillController.cs +++ b/Assets/_Game/Scripts/Skills/SkillController.cs @@ -4,6 +4,19 @@ using Unity.Netcode; namespace Colosseum.Skills { + /// + /// 스킬 강제 취소 이유 + /// + public enum SkillCancelReason + { + None, + Manual, + Death, + Stun, + HitReaction, + Respawn, + } + /// /// 스킬 실행을 관리하는 컴포넌트. /// 애니메이션 이벤트 기반으로 효과가 발동됩니다. @@ -31,6 +44,12 @@ namespace Colosseum.Skills [Tooltip("범위 표시 지속 시간")] [Min(0.1f)] [SerializeField] private float debugDrawDuration = 1f; + [Header("디버그")] + [Tooltip("마지막으로 강제 취소된 스킬 이름")] + [SerializeField] private string lastCancelledSkillName = string.Empty; + [Tooltip("마지막 강제 취소 이유")] + [SerializeField] private SkillCancelReason lastCancelReason = SkillCancelReason.None; + // 현재 실행 중인 스킬 private SkillData currentSkill; private bool skillEndRequested; // OnSkillEnd 이벤트 호출 여부 @@ -47,9 +66,14 @@ namespace Colosseum.Skills public bool IgnoreRootMotionY => currentSkill != null && currentSkill.IgnoreRootMotionY; public SkillData CurrentSkill => currentSkill; public Animator Animator => animator; + public SkillCancelReason LastCancelReason => lastCancelReason; + public string LastCancelledSkillName => lastCancelledSkillName; private void Awake() { + lastCancelledSkillName = string.Empty; + lastCancelReason = SkillCancelReason.None; + if (animator == null) { animator = GetComponentInChildren(); @@ -135,6 +159,7 @@ namespace Colosseum.Skills currentSkill = skill; skillEndRequested = false; waitingForEndAnimation = false; + lastCancelReason = SkillCancelReason.None; if (debugMode) Debug.Log($"[Skill] Cast: {skill.SkillName}"); @@ -339,16 +364,24 @@ namespace Colosseum.Skills if (debugMode) Debug.Log($"[Skill] End requested: {currentSkill.SkillName} (will complete after animation)"); } - public void CancelSkill() + /// + /// 현재 스킬을 강제 취소합니다. + /// + public bool CancelSkill(SkillCancelReason reason = SkillCancelReason.Manual) { - if (currentSkill != null) - { - if (debugMode) Debug.Log($"Skill cancelled: {currentSkill.SkillName}"); - RestoreBaseController(); - currentSkill = null; - skillEndRequested = false; - waitingForEndAnimation = false; - } + if (currentSkill == null) + return false; + + lastCancelledSkillName = currentSkill.SkillName; + lastCancelReason = reason; + + Debug.Log($"[Skill] Cancelled: {currentSkill.SkillName} / reason={reason}"); + + RestoreBaseController(); + currentSkill = null; + skillEndRequested = false; + waitingForEndAnimation = false; + return true; } public bool IsOnCooldown(SkillData skill) From d5d4b2f125b54950917fd217217ddf9b665ba363 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Sat, 21 Mar 2026 12:29:29 +0900 Subject: [PATCH 08/11] =?UTF-8?q?feat:=20=EB=93=9C=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EB=B3=B4=EC=8A=A4=20=EB=A6=AC=EB=84=A4=EC=9E=84=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=ED=8C=A8=ED=84=B4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/Test.unity | 40 +- .../AI/{BT_TestBoss.asset => BT_Drog.asset} | 13 +- ...TestBoss.asset.meta => BT_Drog.asset.meta} | 0 ...m_TestBoss_스윙.fbx => Anim_Drog_스윙.fbx} | Bin ..._스윙.fbx.meta => Anim_Drog_스윙.fbx.meta} | 0 ...ss_스윙_End.fbx => Anim_Drog_스윙_End.fbx} | Bin ...End.fbx.meta => Anim_Drog_스윙_End.fbx.meta} | 0 ...른손치기.fbx => Anim_Drog_오른손치기.fbx} | Bin ...기.fbx.meta => Anim_Drog_오른손치기.fbx.meta} | 0 ...른손치기2.fbx => Anim_Drog_오른손치기2.fbx} | Bin ...2.fbx.meta => Anim_Drog_오른손치기2.fbx.meta} | 7 + ...기2_End.fbx => Anim_Drog_오른손치기2_End.fbx} | Bin ...fbx.meta => Anim_Drog_오른손치기2_End.fbx.meta} | 0 ...치기_End.fbx => Anim_Drog_오른손치기_End.fbx} | Bin ....fbx.meta => Anim_Drog_오른손치기_End.fbx.meta} | 0 ...m_TestBoss_점프.fbx => Anim_Drog_점프.fbx} | Bin ..._점프.fbx.meta => Anim_Drog_점프.fbx.meta} | 0 ...y_TestBoss.asset => Data_Enemy_Drog.asset} | 5 +- ....asset.meta => Data_Enemy_Drog.asset.meta} | 0 .../Data_Pattern_Drog_다운추가타.asset | 20 + .../Data_Pattern_Drog_다운추가타.asset.meta | 8 + ....asset => Data_Pattern_Drog_약2타-스윙.asset} | 5 +- ...ta => Data_Pattern_Drog_약2타-스윙.asset.meta} | 0 ...프.asset => Data_Pattern_Drog_점프.asset} | 5 +- ...t.meta => Data_Pattern_Drog_점프.asset.meta} | 0 .../Skills/Data_Skill_Drog_다운추가타.asset | 27 ++ .../Data_Skill_Drog_다운추가타.asset.meta | 8 + ..._스윙.asset => Data_Skill_Drog_스윙.asset} | 5 +- ...set.meta => Data_Skill_Drog_스윙.asset.meta} | 0 ...기.asset => Data_Skill_Drog_오른손치기.asset} | 5 +- ....meta => Data_Skill_Drog_오른손치기.asset.meta} | 0 ...2.asset => Data_Skill_Drog_오른손치기2.asset} | 6 +- ...meta => Data_Skill_Drog_오른손치기2.asset.meta} | 0 ..._점프.asset => Data_Skill_Drog_점프.asset} | 5 +- ...set.meta => Data_Skill_Drog_점프.asset.meta} | 0 ...비.asset => Data_Skill_Drog_점프준비.asset} | 5 +- ...t.meta => Data_Skill_Drog_점프준비.asset.meta} | 0 ...지.asset => Data_Skill_Drog_점프착지.asset} | 5 +- ...t.meta => Data_Skill_Drog_점프착지.asset.meta} | 0 ...ect_Drog_다운추가타_0_피격가중데미지.asset | 30 ++ ...rog_다운추가타_0_피격가중데미지.asset.meta | 8 + ...t => Data_SkillEffect_Drog_스윙_0_데미지.asset} | 5 +- ...Data_SkillEffect_Drog_스윙_0_데미지.asset.meta} | 0 ... Data_SkillEffect_Drog_오른손치기2_0_데미지.asset} | 5 +- ..._SkillEffect_Drog_오른손치기2_0_데미지.asset.meta} | 0 ..._SkillEffect_Drog_오른손치기2_1_다운.asset | 26 ++ ...lEffect_Drog_오른손치기2_1_다운.asset.meta | 8 + ...> Data_SkillEffect_Drog_오른손치기_0_데미지.asset} | 5 +- ...a_SkillEffect_Drog_오른손치기_0_데미지.asset.meta} | 0 ...t => Data_SkillEffect_Drog_점프_0_데미지.asset} | 5 +- ...Data_SkillEffect_Drog_점프_0_데미지.asset.meta} | 0 ...estBoss.prefab => Model_Enemy_Drog.prefab} | 5 +- ...efab.meta => Model_Enemy_Drog.prefab.meta} | 0 ...estBoss.prefab => Prefab_Boss_Drog.prefab} | 37 +- ...efab.meta => Prefab_Boss_Drog.prefab.meta} | 0 Assets/_Game/Scripts/Enemy/BossEnemy.cs | 10 +- .../Scripts/Enemy/DrogPatternController.cs | 408 ++++++++++++++++++ .../Enemy/DrogPatternController.cs.meta | 11 + .../Scripts/Skills/Effects/DownEffect.cs | 6 +- .../Skills/Effects/HitReactionDamageEffect.cs | 93 ++++ .../Effects/HitReactionDamageEffect.cs.meta | 11 + .../Scripts/Skills/Effects/KnockbackEffect.cs | 12 +- 62 files changed, 793 insertions(+), 61 deletions(-) rename Assets/_Game/AI/{BT_TestBoss.asset => BT_Drog.asset} (99%) rename Assets/_Game/AI/{BT_TestBoss.asset.meta => BT_Drog.asset.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_스윙.fbx => Anim_Drog_스윙.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_스윙.fbx.meta => Anim_Drog_스윙.fbx.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_스윙_End.fbx => Anim_Drog_스윙_End.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_스윙_End.fbx.meta => Anim_Drog_스윙_End.fbx.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기.fbx => Anim_Drog_오른손치기.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기.fbx.meta => Anim_Drog_오른손치기.fbx.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기2.fbx => Anim_Drog_오른손치기2.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기2.fbx.meta => Anim_Drog_오른손치기2.fbx.meta} (99%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기2_End.fbx => Anim_Drog_오른손치기2_End.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기2_End.fbx.meta => Anim_Drog_오른손치기2_End.fbx.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기_End.fbx => Anim_Drog_오른손치기_End.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_오른손치기_End.fbx.meta => Anim_Drog_오른손치기_End.fbx.meta} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_점프.fbx => Anim_Drog_점프.fbx} (100%) rename Assets/_Game/Animations/{Anim_TestBoss_점프.fbx.meta => Anim_Drog_점프.fbx.meta} (100%) rename Assets/_Game/Data/Enemies/{Data_Enemy_TestBoss.asset => Data_Enemy_Drog.asset} (94%) rename Assets/_Game/Data/Enemies/{Data_Enemy_TestBoss.asset.meta => Data_Enemy_Drog.asset.meta} (100%) create mode 100644 Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset create mode 100644 Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset.meta rename Assets/_Game/Data/Patterns/{Data_Pattern_TestBoss_약2타-스윙.asset => Data_Pattern_Drog_약2타-스윙.asset} (91%) rename Assets/_Game/Data/Patterns/{Data_Pattern_TestBoss_약2타-스윙.asset.meta => Data_Pattern_Drog_약2타-스윙.asset.meta} (100%) rename Assets/_Game/Data/Patterns/{Data_Pattern_TestBoss_점프.asset => Data_Pattern_Drog_점프.asset} (93%) rename Assets/_Game/Data/Patterns/{Data_Pattern_TestBoss_점프.asset.meta => Data_Pattern_Drog_점프.asset.meta} (100%) create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset create mode 100644 Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset.meta rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_스윙.asset => Data_Skill_Drog_스윙.asset} (93%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_스윙.asset.meta => Data_Skill_Drog_스윙.asset.meta} (100%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_오른손치기.asset => Data_Skill_Drog_오른손치기.asset} (91%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_오른손치기.asset.meta => Data_Skill_Drog_오른손치기.asset.meta} (100%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_오른손치기2.asset => Data_Skill_Drog_오른손치기2.asset} (84%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_오른손치기2.asset.meta => Data_Skill_Drog_오른손치기2.asset.meta} (100%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프.asset => Data_Skill_Drog_점프.asset} (92%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프.asset.meta => Data_Skill_Drog_점프.asset.meta} (100%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프준비.asset => Data_Skill_Drog_점프준비.asset} (91%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프준비.asset.meta => Data_Skill_Drog_점프준비.asset.meta} (100%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프착지.asset => Data_Skill_Drog_점프착지.asset} (92%) rename Assets/_Game/Data/Skills/{Data_Skill_TestBoss_점프착지.asset.meta => Data_Skill_Drog_점프착지.asset.meta} (100%) create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset.meta rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_스윙_0_데미지.asset => Data_SkillEffect_Drog_스윙_0_데미지.asset} (89%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_스윙_0_데미지.asset.meta => Data_SkillEffect_Drog_스윙_0_데미지.asset.meta} (100%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset => Data_SkillEffect_Drog_오른손치기2_0_데미지.asset} (86%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset.meta => Data_SkillEffect_Drog_오른손치기2_0_데미지.asset.meta} (100%) create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset => Data_SkillEffect_Drog_오른손치기_0_데미지.asset} (87%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset.meta => Data_SkillEffect_Drog_오른손치기_0_데미지.asset.meta} (100%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_점프_0_데미지.asset => Data_SkillEffect_Drog_점프_0_데미지.asset} (89%) rename Assets/_Game/Data/Skills/Effects/{Data_SkillEffect_TestBoss_점프_0_데미지.asset.meta => Data_SkillEffect_Drog_점프_0_데미지.asset.meta} (100%) rename Assets/_Game/Models/{Model_Enemy_TestBoss.prefab => Model_Enemy_Drog.prefab} (99%) rename Assets/_Game/Models/{Model_Enemy_TestBoss.prefab.meta => Model_Enemy_Drog.prefab.meta} (100%) rename Assets/_Game/Prefabs/Bosses/{Prefab_Boss_TestBoss.prefab => Prefab_Boss_Drog.prefab} (98%) rename Assets/_Game/Prefabs/Bosses/{Prefab_Boss_TestBoss.prefab.meta => Prefab_Boss_Drog.prefab.meta} (100%) create mode 100644 Assets/_Game/Scripts/Enemy/DrogPatternController.cs create mode 100644 Assets/_Game/Scripts/Enemy/DrogPatternController.cs.meta create mode 100644 Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs create mode 100644 Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs.meta diff --git a/Assets/Scenes/Test.unity b/Assets/Scenes/Test.unity index 826178dd..2d7c8edd 100644 --- a/Assets/Scenes/Test.unity +++ b/Assets/Scenes/Test.unity @@ -4739,7 +4739,7 @@ MonoBehaviour: m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.ConnectionUI ipAddress: 127.0.0.1 port: 7777 - autoStartHostInEditor: 0 + autoStartHostInEditor: 1 connectionStatus: Disconnected --- !u!4 &854739757 stripped Transform: @@ -6796,6 +6796,19 @@ Transform: m_CorrespondingSourceObject: {fileID: 7132605379903659868, guid: 5b4ac53b97612ae4392b84786de0d50d, type: 3} m_PrefabInstance: {fileID: 1329389111} m_PrefabAsset: {fileID: 0} +--- !u!134 &1236586838 +PhysicsMaterial: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ' (Instance)' + serializedVersion: 2 + m_DynamicFriction: 0.6 + m_StaticFriction: 0.6 + m_Bounciness: 0 + m_FrictionCombine: 0 + m_BounceCombine: 0 --- !u!1001 &1236816272 PrefabInstance: m_ObjectHideFlags: 0 @@ -11397,19 +11410,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 1824081129582740912, guid: bf62c127a7934334d9b955503391f574, type: 3} m_PrefabInstance: {fileID: 649018401} m_PrefabAsset: {fileID: 0} ---- !u!134 &1976569495 -PhysicsMaterial: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 2 - m_DynamicFriction: 0.6 - m_StaticFriction: 0.6 - m_Bounciness: 0 - m_FrictionCombine: 0 - m_BounceCombine: 0 --- !u!1001 &1986213921 PrefabInstance: m_ObjectHideFlags: 0 @@ -11482,18 +11482,18 @@ PrefabInstance: - target: {fileID: -4476104823835307179, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_Material value: - objectReference: {fileID: 1976569495} + objectReference: {fileID: 1236586838} - target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_LocalPosition.y - value: -0 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_LocalPosition.z - value: 15 + value: 8 objectReference: {fileID: 0} - target: {fileID: 3122493901255878198, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_LocalRotation.w @@ -11523,13 +11523,9 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5153439431748782209, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} - propertyPath: m_BaseOffset - value: 0 - objectReference: {fileID: 0} - target: {fileID: 5581648761285601425, guid: 56986b707b0dc09439cb35ff2f87dcc9, type: 3} propertyPath: m_Name - value: TestBoss + value: Drog objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] diff --git a/Assets/_Game/AI/BT_TestBoss.asset b/Assets/_Game/AI/BT_Drog.asset similarity index 99% rename from Assets/_Game/AI/BT_TestBoss.asset rename to Assets/_Game/AI/BT_Drog.asset index 78327659..c493d70f 100644 --- a/Assets/_Game/AI/BT_TestBoss.asset +++ b/Assets/_Game/AI/BT_Drog.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &-6758363554468061369 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5b27bb6d9a2c8d540a10dff10acc543e, type: 3} - m_Name: BT_TestBoss Debug Info + m_Name: BT_Drog Debug Info m_EditorClassIdentifier: Unity.Behavior::Unity.Behavior.BehaviorGraphDebugInfo m_CodeBreakPointsList: [] --- !u!114 &-6591390698989283165 @@ -23,7 +23,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2dd922ae02c94c87a66e46a10a7319b9, type: 3} - m_Name: BT_TestBoss Blackboard + m_Name: BT_Drog Blackboard m_EditorClassIdentifier: Unity.Behavior.Authoring::Unity.Behavior.BehaviorBlackboardAuthoringAsset AssetID: m_Value0: 11861793134961942170 @@ -112,7 +112,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: db920e62f70f420bb33c771449926fa4, type: 3} - m_Name: BT_TestBoss + m_Name: BT_Drog m_EditorClassIdentifier: Unity.Behavior::Unity.Behavior.BehaviorGraph Graphs: - rid: 8805855836547055693 @@ -595,7 +595,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: bad8f2220607dac4db5082ff333fafb8, type: 3} - m_Name: BT_TestBoss + m_Name: BT_Drog m_EditorClassIdentifier: Unity.Behavior.Authoring::Unity.Behavior.BehaviorAuthoringGraph Blackboard: {fileID: -6591390698989283165} m_Description: @@ -2417,7 +2417,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 5c02bb70996b49eba31d0c206e28da24, type: 3} - m_Name: BT_TestBoss Blackboard + m_Name: BT_Drog Blackboard m_EditorClassIdentifier: Unity.Behavior::Unity.Behavior.RuntimeBlackboardAsset VersionTimestamp: 639094519736977735 AssetID: @@ -2483,3 +2483,4 @@ MonoBehaviour: m_Value1: 14990413519379198129 Name: Die m_Value: 0 + diff --git a/Assets/_Game/AI/BT_TestBoss.asset.meta b/Assets/_Game/AI/BT_Drog.asset.meta similarity index 100% rename from Assets/_Game/AI/BT_TestBoss.asset.meta rename to Assets/_Game/AI/BT_Drog.asset.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_스윙.fbx b/Assets/_Game/Animations/Anim_Drog_스윙.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_스윙.fbx rename to Assets/_Game/Animations/Anim_Drog_스윙.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_스윙.fbx.meta b/Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_스윙.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_스윙_End.fbx b/Assets/_Game/Animations/Anim_Drog_스윙_End.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_스윙_End.fbx rename to Assets/_Game/Animations/Anim_Drog_스윙_End.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_스윙_End.fbx.meta b/Assets/_Game/Animations/Anim_Drog_스윙_End.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_스윙_End.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_스윙_End.fbx.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기.fbx b/Assets/_Game/Animations/Anim_Drog_오른손치기.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기.fbx rename to Assets/_Game/Animations/Anim_Drog_오른손치기.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기.fbx.meta b/Assets/_Game/Animations/Anim_Drog_오른손치기.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_오른손치기.fbx.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기2.fbx b/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기2.fbx rename to Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기2.fbx.meta b/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta similarity index 99% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기2.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta index 7e9fc833..e82a6525 100644 --- a/Assets/_Game/Animations/Anim_TestBoss_오른손치기2.fbx.meta +++ b/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta @@ -56,6 +56,13 @@ ModelImporter: curves: [] events: - time: 0.35211262 + functionName: OnEffect + data: + objectReferenceParameter: {instanceID: 0} + floatParameter: 0 + intParameter: 1 + messageOptions: 0 + - time: 0.3636364 functionName: OnEffect data: objectReferenceParameter: {instanceID: 0} diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기2_End.fbx b/Assets/_Game/Animations/Anim_Drog_오른손치기2_End.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기2_End.fbx rename to Assets/_Game/Animations/Anim_Drog_오른손치기2_End.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기2_End.fbx.meta b/Assets/_Game/Animations/Anim_Drog_오른손치기2_End.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기2_End.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_오른손치기2_End.fbx.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기_End.fbx b/Assets/_Game/Animations/Anim_Drog_오른손치기_End.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기_End.fbx rename to Assets/_Game/Animations/Anim_Drog_오른손치기_End.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_오른손치기_End.fbx.meta b/Assets/_Game/Animations/Anim_Drog_오른손치기_End.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_오른손치기_End.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_오른손치기_End.fbx.meta diff --git a/Assets/_Game/Animations/Anim_TestBoss_점프.fbx b/Assets/_Game/Animations/Anim_Drog_점프.fbx similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_점프.fbx rename to Assets/_Game/Animations/Anim_Drog_점프.fbx diff --git a/Assets/_Game/Animations/Anim_TestBoss_점프.fbx.meta b/Assets/_Game/Animations/Anim_Drog_점프.fbx.meta similarity index 100% rename from Assets/_Game/Animations/Anim_TestBoss_점프.fbx.meta rename to Assets/_Game/Animations/Anim_Drog_점프.fbx.meta diff --git a/Assets/_Game/Data/Enemies/Data_Enemy_TestBoss.asset b/Assets/_Game/Data/Enemies/Data_Enemy_Drog.asset similarity index 94% rename from Assets/_Game/Data/Enemies/Data_Enemy_TestBoss.asset rename to Assets/_Game/Data/Enemies/Data_Enemy_Drog.asset index 90366c57..276d467b 100644 --- a/Assets/_Game/Data/Enemies/Data_Enemy_TestBoss.asset +++ b/Assets/_Game/Data/Enemies/Data_Enemy_Drog.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1ecdc2379b078b246a0bd5c0fb58e346, type: 3} - m_Name: Data_Enemy_TestBoss + m_Name: Data_Enemy_Drog m_EditorClassIdentifier: Colosseum.Game::Colosseum.Enemy.EnemyData enemyName: Boss The Test description: @@ -26,3 +26,4 @@ MonoBehaviour: aggroRange: 10 attackRange: 2 attackCooldown: 1 + diff --git a/Assets/_Game/Data/Enemies/Data_Enemy_TestBoss.asset.meta b/Assets/_Game/Data/Enemies/Data_Enemy_Drog.asset.meta similarity index 100% rename from Assets/_Game/Data/Enemies/Data_Enemy_TestBoss.asset.meta rename to Assets/_Game/Data/Enemies/Data_Enemy_Drog.asset.meta diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset new file mode 100644 index 00000000..a4fafefe --- /dev/null +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3} + m_Name: "Data_Pattern_Drog_\uB2E4\uC6B4\uCD94\uAC00\uD0C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData + patternName: "\uB2E4\uC6B4 \uCD94\uAC00\uD0C0" + steps: + - Type: 0 + Skill: {fileID: 11400000, guid: fd7a5d5cc9494229b0c475e7f0cda218, type: 2} + Duration: 0 + cooldown: 2.5 diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset.meta b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset.meta new file mode 100644 index 00000000..7b42c856 --- /dev/null +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_다운추가타.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe5100f855d14c0faac44b6d4f2c771e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_약2타-스윙.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset similarity index 91% rename from Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_약2타-스윙.asset rename to Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset index 4a082a5a..32ee8c1c 100644 --- a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_약2타-스윙.asset +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3} - m_Name: "Data_Pattern_TestBoss_\uC57D2\uD0C0-\uC2A4\uC719" + m_Name: "Data_Pattern_Drog_\uC57D2\uD0C0-\uC2A4\uC719" m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData patternName: "\uAE30\uBCF8 \uD328\uD134" steps: @@ -24,3 +24,4 @@ MonoBehaviour: Skill: {fileID: 11400000, guid: 3acbf1c5ec71bef4bb13f8534605d554, type: 2} Duration: 0.5 cooldown: 5 + diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_약2타-스윙.asset.meta b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset.meta similarity index 100% rename from Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_약2타-스윙.asset.meta rename to Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset.meta diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_점프.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset similarity index 93% rename from Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_점프.asset rename to Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset index 3f9c5694..e93244d8 100644 --- a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_점프.asset +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3} - m_Name: "Data_Pattern_TestBoss_\uC810\uD504" + m_Name: "Data_Pattern_Drog_\uC810\uD504" m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData patternName: "\uAE30\uBCF8 \uD328\uD134" steps: @@ -24,3 +24,4 @@ MonoBehaviour: Skill: {fileID: 11400000, guid: 16321efbd1f2498458683bac7605b054, type: 2} Duration: 0 cooldown: 1 + diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_점프.asset.meta b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset.meta similarity index 100% rename from Assets/_Game/Data/Patterns/Data_Pattern_TestBoss_점프.asset.meta rename to Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset new file mode 100644 index 00000000..84311ae7 --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} + m_Name: "Data_Skill_Drog_\uB2E4\uC6B4\uCD94\uAC00\uD0C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData + skillName: "\uB2E4\uC6B4 \uCD94\uAC00\uD0C0" + description: + icon: {fileID: 0} + skillClip: {fileID: -242498254790479478, guid: 585e8961b6c6e9f4ba96bdb4ffb2cbc3, type: 3} + endClip: {fileID: 3627526391332626453, guid: 39aaec38fc96c4842b972f1e991e5a46, type: 3} + animationSpeed: 1 + useRootMotion: 1 + ignoreRootMotionY: 1 + jumpToTarget: 0 + cooldown: 0 + manaCost: 0 + effects: + - {fileID: 11400000, guid: 0f134a897a7e4d0e98c8d9058b1d79d1, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset.meta new file mode 100644 index 00000000..1044f745 --- /dev/null +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd7a5d5cc9494229b0c475e7f0cda218 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_스윙.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset similarity index 93% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_스윙.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset index e3afae64..18e3d60a 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_스윙.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC2A4\uC719" + m_Name: "Data_Skill_Drog_\uC2A4\uC719" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC2A4\uC719" description: @@ -23,3 +23,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 94b0f3305cea88c458a56783a486340e, type: 2} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_스윙.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_스윙.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기.asset similarity index 91% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기.asset index 72dbf592..beab58cf 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC624\uB978\uC190\uCE58\uAE30" + m_Name: "Data_Skill_Drog_\uC624\uB978\uC190\uCE58\uAE30" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC624\uB978\uC190\uCE58\uAE30" description: @@ -23,3 +23,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 86bf7e282c1639c4889910475aaccdef, type: 2} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기2.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset similarity index 84% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기2.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset index d5f1bbae..3129c624 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기2.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC624\uB978\uC190\uCE58\uAE302" + m_Name: "Data_Skill_Drog_\uC624\uB978\uC190\uCE58\uAE302" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC624\uB978\uC190\uCE58\uAE302" description: @@ -23,3 +23,5 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 87b064a0134987b4b9638e184ab07411, type: 2} + - {fileID: 11400000, guid: 0dba6dca651743bc84b0df42f9dbd290, type: 2} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기2.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_오른손치기2.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프.asset similarity index 92% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프.asset index b27874d4..a32174b2 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC810\uD504" + m_Name: "Data_Skill_Drog_\uC810\uD504" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC810\uD504" description: @@ -25,3 +25,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 0} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프준비.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프준비.asset similarity index 91% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프준비.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프준비.asset index 64385511..42da75da 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프준비.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프준비.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC810\uD504\uC900\uBE44" + m_Name: "Data_Skill_Drog_\uC810\uD504\uC900\uBE44" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC810\uD504" description: @@ -25,3 +25,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 0} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프준비.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프준비.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프준비.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프준비.asset.meta diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프착지.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset similarity index 92% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프착지.asset rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset index 69124e98..64892d31 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프착지.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3} - m_Name: "Data_Skill_TestBoss_\uC810\uD504\uCC29\uC9C0" + m_Name: "Data_Skill_Drog_\uC810\uD504\uCC29\uC9C0" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uC810\uD504" description: @@ -25,3 +25,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 11bd2d1ebdbfc2f4abf5a9d886615eb3, type: 2} + diff --git a/Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프착지.asset.meta b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Data_Skill_TestBoss_점프착지.asset.meta rename to Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset.meta diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset new file mode 100644 index 00000000..9cfe8f9d --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset @@ -0,0 +1,30 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6fd8c6f4c4454ecdb111d13dc8471024, type: 3} + m_Name: "Data_SkillEffect_Drog_\uB2E4\uC6B4\uCD94\uAC00\uD0C0_0_\uD53C\uACA9\uAC00\uC911\uB370\uBBF8\uC9C0" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.HitReactionDamageEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 3.25 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + baseDamage: 1 + damageType: 0 + statScaling: 1 + bonusAgainstDownedTarget: 1 + downedDamageMultiplier: 1.5 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset.meta new file mode 100644 index 00000000..7aeea17d --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_0_피격가중데미지.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f134a897a7e4d0e98c8d9058b1d79d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_스윙_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_0_데미지.asset similarity index 89% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_스윙_0_데미지.asset rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_0_데미지.asset index e4a65b1c..6033f0f9 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_스윙_0_데미지.asset +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_0_데미지.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} - m_Name: "Data_SkillEffect_TestBoss_\uC2A4\uC719_0_\uB370\uBBF8\uC9C0" + m_Name: "Data_SkillEffect_Drog_\uC2A4\uC719_0_\uB370\uBBF8\uC9C0" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect targetType: 1 targetTeam: 0 @@ -26,3 +26,4 @@ MonoBehaviour: baseDamage: 1 damageType: 0 statScaling: 1 + diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_스윙_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_0_데미지.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_스윙_0_데미지.asset.meta rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_0_데미지.asset.meta diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_0_데미지.asset similarity index 86% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_0_데미지.asset index 3c11a4d5..6fba0795 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_0_데미지.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} - m_Name: "Data_SkillEffect_TestBoss_\uC624\uB978\uC190\uCE58\uAE302_0_\uB370\uBBF8\uC9C0" + m_Name: "Data_SkillEffect_Drog_\uC624\uB978\uC190\uCE58\uAE302_0_\uB370\uBBF8\uC9C0" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect targetType: 1 targetTeam: 0 @@ -26,3 +26,4 @@ MonoBehaviour: baseDamage: 1 damageType: 0 statScaling: 1 + diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_0_데미지.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기2_0_데미지.asset.meta rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_0_데미지.asset.meta diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset new file mode 100644 index 00000000..4c0b4eb2 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41c96b54a96cdb84c9bda774775b0a1a, type: 3} + m_Name: "Data_SkillEffect_Drog_\uC624\uB978\uC190\uCE58\uAE302_1_\uB2E4\uC6B4" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DownEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 1 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 3 + fanOriginDistance: 0 + fanRadius: 3 + fanHalfAngle: 45 + duration: 2.5 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta new file mode 100644 index 00000000..40dd05ca --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0dba6dca651743bc84b0df42f9dbd290 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기_0_데미지.asset similarity index 87% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기_0_데미지.asset index 066a266a..18a9f55d 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기_0_데미지.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} - m_Name: "Data_SkillEffect_TestBoss_\uC624\uB978\uC190\uCE58\uAE30_0_\uB370\uBBF8\uC9C0" + m_Name: "Data_SkillEffect_Drog_\uC624\uB978\uC190\uCE58\uAE30_0_\uB370\uBBF8\uC9C0" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect targetType: 1 targetTeam: 0 @@ -26,3 +26,4 @@ MonoBehaviour: baseDamage: 1 damageType: 0 statScaling: 1 + diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기_0_데미지.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_오른손치기_0_데미지.asset.meta rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기_0_데미지.asset.meta diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_점프_0_데미지.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_0_데미지.asset similarity index 89% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_점프_0_데미지.asset rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_0_데미지.asset index d432f495..cbbf31c5 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_점프_0_데미지.asset +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_0_데미지.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &11400000 MonoBehaviour: @@ -10,7 +10,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3} - m_Name: "Data_SkillEffect_TestBoss_\uC810\uD504_0_\uB370\uBBF8\uC9C0" + m_Name: "Data_SkillEffect_Drog_\uC810\uD504_0_\uB370\uBBF8\uC9C0" m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect targetType: 1 targetTeam: 0 @@ -26,3 +26,4 @@ MonoBehaviour: baseDamage: 1 damageType: 0 statScaling: 1 + diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_점프_0_데미지.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_0_데미지.asset.meta similarity index 100% rename from Assets/_Game/Data/Skills/Effects/Data_SkillEffect_TestBoss_점프_0_데미지.asset.meta rename to Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_0_데미지.asset.meta diff --git a/Assets/_Game/Models/Model_Enemy_TestBoss.prefab b/Assets/_Game/Models/Model_Enemy_Drog.prefab similarity index 99% rename from Assets/_Game/Models/Model_Enemy_TestBoss.prefab rename to Assets/_Game/Models/Model_Enemy_Drog.prefab index aaee15f8..8714b91b 100644 --- a/Assets/_Game/Models/Model_Enemy_TestBoss.prefab +++ b/Assets/_Game/Models/Model_Enemy_Drog.prefab @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1 &1008926773928116 GameObject: @@ -1364,7 +1364,7 @@ GameObject: - component: {fileID: 4373196678005266} - component: {fileID: 95998111322576624} m_Layer: 0 - m_Name: Model_Enemy_TestBoss + m_Name: Model_Enemy_Drog m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3285,3 +3285,4 @@ Transform: m_CorrespondingSourceObject: {fileID: 8583892753143838813, guid: 95219051c0a1142448e9ed4beee02fe1, type: 3} m_PrefabInstance: {fileID: 8587889261130452289} m_PrefabAsset: {fileID: 0} + diff --git a/Assets/_Game/Models/Model_Enemy_TestBoss.prefab.meta b/Assets/_Game/Models/Model_Enemy_Drog.prefab.meta similarity index 100% rename from Assets/_Game/Models/Model_Enemy_TestBoss.prefab.meta rename to Assets/_Game/Models/Model_Enemy_Drog.prefab.meta diff --git a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_TestBoss.prefab b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab similarity index 98% rename from Assets/_Game/Prefabs/Bosses/Prefab_Boss_TestBoss.prefab rename to Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab index 977b2d77..43d1b1bd 100644 --- a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_TestBoss.prefab +++ b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab @@ -1929,11 +1929,12 @@ GameObject: - component: {fileID: 5774766047967133809} - component: {fileID: 8818883032728065057} - component: {fileID: -2857689419101920665} + - component: {fileID: 1459274958342653187} - component: {fileID: 7544406269366897481} - component: {fileID: 4137653497738922896} - component: {fileID: 2670434347080613863} m_Layer: 6 - m_Name: Prefab_Boss_TestBoss + m_Name: Prefab_Boss_Drog m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2030,6 +2031,10 @@ MonoBehaviour: animator: {fileID: 4019041888965840580} navMeshAgent: {fileID: 5153439431748782209} enemyData: {fileID: 11400000, guid: f21773b42c60c4b40b609966f09146aa, type: 2} + useThreatSystem: 1 + damageThreatMultiplier: 1 + threatDecayPerSecond: 0 + retargetThreshold: 0 phases: [] initialBehaviorGraph: {fileID: -3933356984444701103, guid: 9ade9280028e9da4aa0151fe8e9ec454, type: 2} phaseTransitionInvincibilityTime: 2 @@ -2149,6 +2154,8 @@ MonoBehaviour: debugMode: 1 showAreaDebug: 1 debugDrawDuration: 1 + lastCancelledSkillName: + lastCancelReason: 0 --- !u!114 &-2857689419101920665 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2162,6 +2169,33 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Colosseum.Game::Colosseum.Team teamType: 2 +--- !u!114 &1459274958342653187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5581648761285601425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5b2d4ef2f1b4ee49b5f7f2c7175fd10, type: 3} + m_Name: + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Enemy.DrogPatternController + ShowTopMostFoldoutHeaderGroup: 1 + bossEnemy: {fileID: 6949205239376088310} + enemyBase: {fileID: 6949205239376088310} + skillController: {fileID: 8818883032728065057} + navMeshAgent: {fileID: 5153439431748782209} + mainPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2} + leapPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2} + downPunishPattern: {fileID: 11400000, guid: fe5100f855d14c0faac44b6d4f2c771e, type: 2} + phase2HealthThreshold: 0.75 + phase3HealthThreshold: 0.4 + targetRefreshInterval: 0.2 + leapDistanceThreshold: 8 + downPunishSearchRadius: 6 + disableBehaviorGraph: 1 + debugMode: 1 --- !u!114 &7544406269366897481 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2177,6 +2211,7 @@ MonoBehaviour: ShowTopMostFoldoutHeaderGroup: 1 characterStats: {fileID: 0} networkController: {fileID: 0} + skillController: {fileID: 0} --- !u!114 &4137653497738922896 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_TestBoss.prefab.meta b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab.meta similarity index 100% rename from Assets/_Game/Prefabs/Bosses/Prefab_Boss_TestBoss.prefab.meta rename to Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab.meta diff --git a/Assets/_Game/Scripts/Enemy/BossEnemy.cs b/Assets/_Game/Scripts/Enemy/BossEnemy.cs index 1f987dd2..1dcc43c1 100644 --- a/Assets/_Game/Scripts/Enemy/BossEnemy.cs +++ b/Assets/_Game/Scripts/Enemy/BossEnemy.cs @@ -33,6 +33,7 @@ namespace Colosseum.Enemy // 컴포넌트 private BehaviorGraphAgent behaviorAgent; + private DrogPatternController drogPatternController; // 페이즈 상태 private int currentPhaseIndex = 0; @@ -77,8 +78,15 @@ namespace Colosseum.Enemy behaviorAgent = gameObject.AddComponent(); } + drogPatternController = GetComponent(); + // 초기 AI 설정 - if (IsServer && initialBehaviorGraph != null) + if (IsServer && drogPatternController != null && drogPatternController.DisableBehaviorGraph) + { + behaviorAgent.enabled = false; + behaviorAgent.Graph = null; + } + else if (IsServer && initialBehaviorGraph != null) { behaviorAgent.Graph = initialBehaviorGraph; } diff --git a/Assets/_Game/Scripts/Enemy/DrogPatternController.cs b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs new file mode 100644 index 00000000..d2b483f4 --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs @@ -0,0 +1,408 @@ +using System.Collections; +using System.Collections.Generic; + +using UnityEngine; +using Unity.Netcode; + +using Colosseum.AI; +using Colosseum.Player; +using Colosseum.Skills; + +namespace Colosseum.Enemy +{ + /// + /// 드로그 전용 패턴 선택 컨트롤러입니다. + /// 기본 루프, 도약, 다운 추가타 같은 고우선 패턴을 직접 선택합니다. + /// + [DisallowMultipleComponent] + [RequireComponent(typeof(BossEnemy))] + [RequireComponent(typeof(SkillController))] + public class DrogPatternController : NetworkBehaviour + { + [Header("References")] + [SerializeField] private BossEnemy bossEnemy; + [SerializeField] private EnemyBase enemyBase; + [SerializeField] private SkillController skillController; + [SerializeField] private UnityEngine.AI.NavMeshAgent navMeshAgent; + + [Header("Pattern Data")] + [Tooltip("기본 근접 압박 패턴")] + [SerializeField] private BossPatternData mainPattern; + + [Tooltip("먼 대상 징벌용 도약 패턴")] + [SerializeField] private BossPatternData leapPattern; + + [Tooltip("다운 대상이 있을 때 우선 발동하는 광역 추가타 패턴")] + [SerializeField] private BossPatternData downPunishPattern; + + [Header("Phase Thresholds")] + [Tooltip("2페이즈 진입 체력 비율")] + [Range(0f, 1f)] [SerializeField] private float phase2HealthThreshold = 0.75f; + + [Tooltip("3페이즈 진입 체력 비율")] + [Range(0f, 1f)] [SerializeField] private float phase3HealthThreshold = 0.4f; + + [Header("Targeting")] + [Tooltip("타겟 재탐색 주기")] + [Min(0.05f)] [SerializeField] private float targetRefreshInterval = 0.2f; + + [Tooltip("도약 패턴을 고려하기 시작하는 거리")] + [Min(0f)] [SerializeField] private float leapDistanceThreshold = 8f; + + [Tooltip("다운 추가타를 고려할 최대 반경")] + [Min(0f)] [SerializeField] private float downPunishSearchRadius = 6f; + + [Header("Behavior")] + [Tooltip("드로그 전용 컨트롤러 사용 시 기존 BehaviorGraph를 비활성화할지 여부")] + [SerializeField] private bool disableBehaviorGraph = true; + + [Tooltip("디버그 로그 출력 여부")] + [SerializeField] private bool debugMode = false; + + private readonly Dictionary patternCooldownTracker = new Dictionary(); + + private Coroutine activePatternCoroutine; + private GameObject currentTarget; + private float nextTargetRefreshTime; + + /// + /// 드로그 컨트롤러 사용 시 BehaviorGraph를 비활성화할지 여부 + /// + public bool DisableBehaviorGraph => disableBehaviorGraph; + + /// + /// 현재 전용 패턴 실행 중인지 여부 + /// + public bool IsExecutingPattern => activePatternCoroutine != null; + + /// + /// 현재 드로그 패턴 페이즈 + /// + public int CurrentPatternPhase + { + get + { + float healthRatio = bossEnemy != null && bossEnemy.MaxHealth > 0f + ? bossEnemy.CurrentHealth / bossEnemy.MaxHealth + : 1f; + + if (healthRatio <= phase3HealthThreshold) + return 3; + + if (healthRatio <= phase2HealthThreshold) + return 2; + + return 1; + } + } + + private void Awake() + { + ResolveReferences(); + } + + public override void OnNetworkSpawn() + { + ResolveReferences(); + + if (!IsServer) + { + enabled = false; + } + } + + private void Update() + { + if (!IsServer) + return; + + ResolveReferences(); + + if (bossEnemy == null || enemyBase == null || skillController == null) + return; + + if (bossEnemy.IsDead || bossEnemy.IsTransitioning) + return; + + RefreshTargetIfNeeded(); + UpdateMovement(); + + if (activePatternCoroutine != null || skillController.IsPlayingAnimation) + return; + + if (TryStartDownPunishPattern()) + return; + + TryStartMainPattern(); + } + + private bool TryStartDownPunishPattern() + { + if (!IsPatternReady(downPunishPattern)) + return false; + + GameObject downedTarget = FindNearestDownedTarget(); + if (downedTarget == null) + return false; + + StartPattern(downPunishPattern, downedTarget); + return true; + } + + private bool TryStartMainPattern() + { + if (currentTarget == null) + return false; + + float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); + + if (distanceToTarget >= leapDistanceThreshold && IsPatternReady(leapPattern)) + { + StartPattern(leapPattern, currentTarget); + return true; + } + + float attackRange = enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; + if (distanceToTarget <= attackRange + 0.25f && IsPatternReady(mainPattern)) + { + StartPattern(mainPattern, currentTarget); + return true; + } + + return false; + } + + private void StartPattern(BossPatternData pattern, GameObject target) + { + if (pattern == null || activePatternCoroutine != null) + return; + + if (debugMode) + { + string targetName = target != null ? target.name : "None"; + Debug.Log($"[DrogPattern] 패턴 시작: {pattern.PatternName} / Target={targetName} / Phase={CurrentPatternPhase}"); + } + + activePatternCoroutine = StartCoroutine(RunPatternCoroutine(pattern, target)); + } + + private IEnumerator RunPatternCoroutine(BossPatternData pattern, GameObject target) + { + StopMovement(); + + bool completed = true; + BossPatternData chainedPattern = null; + GameObject chainedTarget = null; + + for (int i = 0; i < pattern.Steps.Count; i++) + { + PatternStep step = pattern.Steps[i]; + + if (step.Type == PatternStepType.Wait) + { + yield return new WaitForSeconds(step.Duration); + continue; + } + + if (step.Skill == null) + { + completed = false; + Debug.LogWarning($"[DrogPattern] 패턴 스텝 스킬이 비어 있습니다. Pattern={pattern.PatternName}, Index={i}"); + break; + } + + if (step.Skill.JumpToTarget && target != null) + { + enemyBase?.SetJumpTarget(target.transform.position); + } + + if (!skillController.ExecuteSkill(step.Skill)) + { + completed = false; + if (debugMode) + { + Debug.LogWarning($"[DrogPattern] 스킬 실행 실패: {step.Skill.SkillName}"); + } + break; + } + + yield return new WaitUntil(() => skillController == null || !skillController.IsPlayingAnimation || bossEnemy == null || bossEnemy.IsDead); + + if (bossEnemy == null || bossEnemy.IsDead) + { + completed = false; + break; + } + + if (pattern != downPunishPattern && TryPrepareDownPunishChain(out chainedTarget)) + { + chainedPattern = downPunishPattern; + break; + } + } + + if (completed) + { + patternCooldownTracker[pattern] = Time.time + pattern.Cooldown; + } + + activePatternCoroutine = null; + + if (chainedPattern != null && chainedTarget != null && bossEnemy != null && !bossEnemy.IsDead) + { + StartPattern(chainedPattern, chainedTarget); + } + } + + private bool IsPatternReady(BossPatternData pattern) + { + if (pattern == null || pattern.Steps == null || pattern.Steps.Count == 0) + return false; + + if (!patternCooldownTracker.TryGetValue(pattern, out float readyTime)) + return true; + + return Time.time >= readyTime; + } + + private void RefreshTargetIfNeeded() + { + if (Time.time < nextTargetRefreshTime) + return; + + nextTargetRefreshTime = Time.time + targetRefreshInterval; + + GameObject highestThreatTarget = enemyBase.GetHighestThreatTarget(currentTarget, null, enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity); + currentTarget = highestThreatTarget != null ? highestThreatTarget : FindNearestLivingPlayer(); + } + + private void UpdateMovement() + { + if (navMeshAgent == null || !navMeshAgent.enabled) + return; + + if (activePatternCoroutine != null || (skillController != null && skillController.IsPlayingAnimation)) + { + StopMovement(); + return; + } + + if (currentTarget == null) + { + StopMovement(); + return; + } + + float attackRange = enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; + float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); + if (distanceToTarget <= attackRange) + { + StopMovement(); + return; + } + + navMeshAgent.isStopped = false; + navMeshAgent.SetDestination(currentTarget.transform.position); + } + + private void StopMovement() + { + if (navMeshAgent == null || !navMeshAgent.enabled) + return; + + navMeshAgent.isStopped = true; + navMeshAgent.ResetPath(); + } + + private GameObject FindNearestDownedTarget() + { + HitReactionController[] hitReactionControllers = FindObjectsByType(FindObjectsSortMode.None); + + GameObject bestTarget = null; + float bestDistance = float.MaxValue; + + for (int i = 0; i < hitReactionControllers.Length; i++) + { + HitReactionController controller = hitReactionControllers[i]; + if (controller == null || !controller.IsDowned) + continue; + + GameObject candidate = controller.gameObject; + if (candidate == null || !candidate.activeInHierarchy || Team.IsSameTeam(gameObject, candidate)) + continue; + + float distance = Vector3.Distance(transform.position, candidate.transform.position); + if (distance > downPunishSearchRadius || distance >= bestDistance) + continue; + + bestDistance = distance; + bestTarget = candidate; + } + + return bestTarget; + } + + private bool TryPrepareDownPunishChain(out GameObject downedTarget) + { + downedTarget = null; + + if (!IsPatternReady(downPunishPattern)) + return false; + + downedTarget = FindNearestDownedTarget(); + if (downedTarget == null) + return false; + + if (debugMode) + { + Debug.Log($"[DrogPattern] 다운 대상 감지, 다운 추가타 연계 준비: {downedTarget.name}"); + } + + return true; + } + + private GameObject FindNearestLivingPlayer() + { + PlayerNetworkController[] players = FindObjectsByType(FindObjectsSortMode.None); + + GameObject bestTarget = null; + float bestDistance = float.MaxValue; + float aggroRange = enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity; + + for (int i = 0; i < players.Length; i++) + { + PlayerNetworkController player = players[i]; + if (player == null || player.IsDead || !player.gameObject.activeInHierarchy) + continue; + + GameObject candidate = player.gameObject; + if (Team.IsSameTeam(gameObject, candidate)) + continue; + + float distance = Vector3.Distance(transform.position, candidate.transform.position); + if (distance > aggroRange || distance >= bestDistance) + continue; + + bestDistance = distance; + bestTarget = candidate; + } + + return bestTarget; + } + + private void ResolveReferences() + { + if (bossEnemy == null) + bossEnemy = GetComponent(); + + if (enemyBase == null) + enemyBase = GetComponent(); + + if (skillController == null) + skillController = GetComponent(); + + if (navMeshAgent == null) + navMeshAgent = GetComponent(); + } + } +} diff --git a/Assets/_Game/Scripts/Enemy/DrogPatternController.cs.meta b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs.meta new file mode 100644 index 00000000..c7541b97 --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c5b2d4ef2f1b4ee49b5f7f2c7175fd10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs index 68cbf901..c9821529 100644 --- a/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs +++ b/Assets/_Game/Scripts/Skills/Effects/DownEffect.cs @@ -30,7 +30,11 @@ namespace Colosseum.Skills.Effects return; } - if (!target.TryGetComponent(out HitReactionController hitReactionController)) + HitReactionController hitReactionController = target.GetComponent(); + if (hitReactionController == null) + hitReactionController = target.GetComponentInParent(); + + if (hitReactionController == null) { Debug.LogWarning($"[DownEffect] HitReactionController not found on target: {target.name}"); return; diff --git a/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs b/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs new file mode 100644 index 00000000..3f3f899f --- /dev/null +++ b/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs @@ -0,0 +1,93 @@ +using UnityEngine; + +using Colosseum.Combat; +using Colosseum.Player; +using Colosseum.Stats; +using Colosseum.Weapons; + +namespace Colosseum.Skills.Effects +{ + /// + /// 피격 제어 상태에 따라 추가 피해를 줄 수 있는 대미지 효과입니다. + /// 현재는 다운 상태인 대상에게 추가 배율을 적용합니다. + /// + [CreateAssetMenu(fileName = "HitReactionDamageEffect", menuName = "Colosseum/Skills/Effects/HitReaction Damage")] + public class HitReactionDamageEffect : SkillEffect + { + [Header("Damage Settings")] + [Min(0f)] [SerializeField] private float baseDamage = 10f; + [SerializeField] private DamageType damageType = DamageType.Physical; + [Tooltip("스탯 계수 (1.0 = 100%)")] + [Min(0f)] [SerializeField] private float statScaling = 1f; + + [Header("Hit Reaction Bonus")] + [Tooltip("다운 상태인 대상에게 추가 배율을 적용할지 여부")] + [SerializeField] private bool bonusAgainstDownedTarget = true; + + [Tooltip("다운 상태 대상에게 적용되는 추가 피해 배율")] + [Min(1f)] [SerializeField] private float downedDamageMultiplier = 1.5f; + + protected override void ApplyEffect(GameObject caster, GameObject target) + { + if (target == null) + return; + + IDamageable damageable = target.GetComponent(); + if (damageable == null) + return; + + float totalDamage = CalculateDamage(caster); + + HitReactionController hitReactionController = target.GetComponent(); + if (hitReactionController == null) + hitReactionController = target.GetComponentInParent(); + + if (bonusAgainstDownedTarget + && hitReactionController != null + && hitReactionController.IsDowned) + { + totalDamage *= downedDamageMultiplier; + } + + damageable.TakeDamage(totalDamage, caster); + } + + /// + /// 시전자 스탯 기반 대미지 계산 + /// 공식: baseDamage + (statDamage * scaling) + /// + private float CalculateDamage(GameObject caster) + { + if (damageType == DamageType.True) + { + return baseDamage; + } + + CharacterStats stats = caster != null ? caster.GetComponent() : null; + if (stats == null) + { + return baseDamage; + } + + float statDamage = damageType switch + { + DamageType.Physical => stats.PhysicalDamage, + DamageType.Magical => stats.MagicDamage, + DamageType.Ranged => stats.Dexterity.FinalValue * 2f, + _ => 0f, + }; + + float baseTotal = baseDamage + (statDamage * statScaling); + return baseTotal * GetDamageMultiplier(caster); + } + + /// + /// 시전자의 무기 데미지 배율 조회 + /// + private float GetDamageMultiplier(GameObject caster) + { + WeaponEquipment weaponEquipment = caster != null ? caster.GetComponent() : null; + return weaponEquipment != null ? weaponEquipment.DamageMultiplier : 1f; + } + } +} diff --git a/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs.meta b/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs.meta new file mode 100644 index 00000000..1d95f411 --- /dev/null +++ b/Assets/_Game/Scripts/Skills/Effects/HitReactionDamageEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6fd8c6f4c4454ecdb111d13dc8471024 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs b/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs index 312ef20f..56f73c48 100644 --- a/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs +++ b/Assets/_Game/Scripts/Skills/Effects/KnockbackEffect.cs @@ -28,13 +28,21 @@ namespace Colosseum.Skills.Effects Vector3 knockbackVelocity = direction * force + Vector3.up * upwardForce; - if (target.TryGetComponent(out var hitReactionController)) + HitReactionController hitReactionController = target.GetComponent(); + if (hitReactionController == null) + hitReactionController = target.GetComponentInParent(); + + if (hitReactionController != null) { hitReactionController.ApplyKnockback(knockbackVelocity, duration); return; } - if (target.TryGetComponent(out var playerMovement)) + PlayerMovement playerMovement = target.GetComponent(); + if (playerMovement == null) + playerMovement = target.GetComponentInParent(); + + if (playerMovement != null) { playerMovement.ApplyForcedMovement(knockbackVelocity, duration); } From 1d81bca83112d0bac54cfba2a7ca306225454bc9 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Sun, 22 Mar 2026 23:50:10 +0900 Subject: [PATCH 09/11] Fix Sidekick tool startup and path handling --- .../Scripts/Editor/ModularCharacterWindow.cs | 19 +- .../Scripts/Editor/Utility/ToolDownloader.cs | 50 +++- .../Scripts/Runtime/API/SidekickRuntime.cs | 40 ++- .../Runtime/Database/DTO/SidekickColorSet.cs | 12 + .../Runtime/Database/DTO/SidekickPart.cs | 2 + .../Runtime/Database/DatabaseManager.cs | 242 +++++++++++++++++- 6 files changed, 345 insertions(+), 20 deletions(-) diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Editor/ModularCharacterWindow.cs b/Assets/External/Models/SidekickCharacters/Scripts/Editor/ModularCharacterWindow.cs index 626ed7a7..41785c2a 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Editor/ModularCharacterWindow.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Editor/ModularCharacterWindow.cs @@ -40,7 +40,7 @@ namespace Synty.SidekickCharacters private const string _AUTOSAVE_MISSING_PARTS = "SK_Autosave_missing_parts"; private const string _AUTOSAVE_STATE = "SK_Autosave_state"; private const string _BASE_COLOR_SET_NAME = "Species"; - private const string _BASE_COLOR_SET_PATH = "Assets/Synty/SidekickCharacters/Resources/Species"; + private const string _BASE_COLOR_SET_PATH = "Assets/External/Models/SidekickCharacters/Resources/Species"; private const string _BASE_MESH_NAME = "Meshes/SK_BaseModel"; private const string _BASE_MATERIAL_NAME = "Materials/M_BaseMaterial"; private const string _BLEND_GENDER_NAME = "masculineFeminine"; @@ -121,7 +121,7 @@ namespace Synty.SidekickCharacters private bool _showAllColourProperties = false; private float _bodyTypeBlendValue; private bool _loadingCharacter = false; - private bool _loadingContent = true; + private bool _loadingContent = false; private Image _loadingImage; private ObjectField _materialField; private float _musclesBlendValue; @@ -192,7 +192,7 @@ namespace Synty.SidekickCharacters } // ensures we release the file lock on the database - _dbManager.CloseConnection(); + _dbManager?.CloseConnection(); } #if UNITY_EDITOR @@ -211,7 +211,7 @@ namespace Synty.SidekickCharacters /// private void Update() { - if (_loadingContent) + if (_loadingContent && _loadingImage != null) { Vector3 rotation = _loadingImage.transform.rotation.eulerAngles; rotation += new Vector3(0, 0, 0.5f * Time.deltaTime); @@ -473,6 +473,7 @@ namespace Synty.SidekickCharacters // if we still can't connect, something's gone wrong, don't keep building the GUI if (_dbManager?.GetCurrentDbConnection() == null) { + _loadingContent = false; return; } @@ -1814,7 +1815,12 @@ namespace Synty.SidekickCharacters documentationButton.clickable.clicked += delegate { - Application.OpenURL("file:Assets/Synty/SidekickCharacters/Documentation/SidekickCharacters_UserGuide.pdf"); + string documentationPath = Path.Combine(DatabaseManager.GetPackageRootAbsolutePath() ?? string.Empty, "Documentation", "SidekickCharacters_UserGuide.pdf"); + documentationPath = Path.GetFullPath(documentationPath); + if (File.Exists(documentationPath)) + { + Application.OpenURL("file:" + documentationPath); + } }; Button storeButton = new Button @@ -1919,7 +1925,8 @@ namespace Synty.SidekickCharacters /// private void SaveColorSet() { - string path = Path.Combine(_BASE_COLOR_SET_PATH, _currentSpecies.Name); + string baseColorSetPath = DatabaseManager.GetPackageAssetPath("Resources", "Species") ?? _BASE_COLOR_SET_PATH; + string path = Path.Combine(baseColorSetPath, _currentSpecies.Name); path = Path.Combine(path, _currentColorSet.Name.Replace(" ", "_")); SaveTexturesToDisk(path); diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Editor/Utility/ToolDownloader.cs b/Assets/External/Models/SidekickCharacters/Scripts/Editor/Utility/ToolDownloader.cs index 93a04d17..c162b780 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Editor/Utility/ToolDownloader.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Editor/Utility/ToolDownloader.cs @@ -24,7 +24,7 @@ namespace Synty.SidekickCharacters private const string _GIT_DB_URL = "https://github.com/SyntyStudios/SidekicksToolRelease/releases/latest/download/SidekicksDatabase.unitypackage"; private const string _PACKAGE_CACHE = "Assets/DownloadCache/Sidekicks.unitypackage"; private const string _DB_PACKAGE_CACHE = "Assets/DownloadCache/SidekicksDatabase.unitypackage"; - private const string _VERSION_FILE = "Assets/Synty/SidekickCharacters/Scripts/Editor/version.txt"; + private const string _VERSION_FILE_NAME = "version.txt"; private const string _VERSION_TAG = "\"tag_name\":"; private const string _VERSION_KEY = "sk_current_tool_version"; private const string _SIDEKICK_TOOL_MENU_ITEM = "Synty/Sidekick Character Tool"; @@ -168,19 +168,61 @@ namespace Synty.SidekickCharacters private void SaveCurrentInstalledVersion(string version) { - File.WriteAllText(_VERSION_FILE, version); + string versionFilePath = GetVersionFilePath(); + if (string.IsNullOrEmpty(versionFilePath)) + { + Debug.LogWarning("Unable to resolve Sidekick version file path."); + return; + } + + File.WriteAllText(versionFilePath, version); } private string LoadCurrentInstalledVersion() { - if (File.Exists(_VERSION_FILE)) + string versionFilePath = GetVersionFilePath(); + if (string.IsNullOrEmpty(versionFilePath)) { - return File.ReadAllText(_VERSION_FILE); + return null; + } + + if (File.Exists(versionFilePath)) + { + return File.ReadAllText(versionFilePath); } return null; } + private string GetVersionFilePath() + { + MonoScript currentScript = MonoScript.FromScriptableObject(this); + if (currentScript == null) + { + return null; + } + + string scriptPath = AssetDatabase.GetAssetPath(currentScript); + if (string.IsNullOrEmpty(scriptPath)) + { + return null; + } + + string utilityDirectory = Path.GetDirectoryName(scriptPath); + if (string.IsNullOrEmpty(utilityDirectory)) + { + return null; + } + + string editorDirectory = Path.GetDirectoryName(utilityDirectory); + if (string.IsNullOrEmpty(editorDirectory)) + { + return null; + } + + return Path.GetFullPath(Path.Combine(editorDirectory, _VERSION_FILE_NAME)); + } + private void DownloadLatestDBVersion() { WebClient client = new WebClient(); diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/API/SidekickRuntime.cs b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/API/SidekickRuntime.cs index 52b15710..d38b4db0 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/API/SidekickRuntime.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/API/SidekickRuntime.cs @@ -230,6 +230,42 @@ namespace Synty.SidekickCharacters.API await runtime.PopulatePresetLibrary(); } + private static List GetSidekickPartFiles() + { + string packageRootPath = DatabaseManager.GetPackageRootAbsolutePath(); + if (!string.IsNullOrEmpty(packageRootPath)) + { + string meshesRootPath = Path.Combine(packageRootPath, "Resources", "Meshes"); + if (Directory.Exists(meshesRootPath)) + { + return Directory + .GetFiles(meshesRootPath, "SK_*_*_*_*_*.fbx", SearchOption.AllDirectories) + .Select(ToAssetPath) + .ToList(); + } + } + + return Directory.GetFiles("Assets", "SK_*_*_*_*_*.fbx", SearchOption.AllDirectories).ToList(); + } + + private static string ToAssetPath(string fullPath) + { + if (string.IsNullOrWhiteSpace(fullPath)) + { + return fullPath; + } + + string normalizedFullPath = fullPath.Replace('\\', '/'); + string normalizedAssetsPath = Application.dataPath.Replace('\\', '/'); + + if (!normalizedFullPath.StartsWith(normalizedAssetsPath, StringComparison.OrdinalIgnoreCase)) + { + return normalizedFullPath; + } + + return "Assets" + normalizedFullPath.Substring(normalizedAssetsPath.Length); + } + /// /// Takes all the parts selected in the window, and combines them into a single model in the scene. /// @@ -512,7 +548,7 @@ namespace Synty.SidekickCharacters.API _partOutfitToggleMap = new Dictionary(); _partCount = 0; - List files = Directory.GetFiles("Assets", "SK_*_*_*_*_*.fbx", SearchOption.AllDirectories).ToList(); + List files = GetSidekickPartFiles(); foreach (CharacterPartType partType in Enum.GetValues(typeof(CharacterPartType))) { @@ -610,7 +646,7 @@ namespace Synty.SidekickCharacters.API _speciesDictionary = new Dictionary(); _partCount = 0; - List files = Directory.GetFiles("Assets", "SK_*_*_*_*_*.fbx", SearchOption.AllDirectories).ToList(); + List files = GetSidekickPartFiles(); Dictionary filesOnDisk = new Dictionary(); foreach (string file in files) { diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickColorSet.cs b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickColorSet.cs index 696956ae..02461545 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickColorSet.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickColorSet.cs @@ -154,6 +154,18 @@ namespace Synty.SidekickCharacters.Database.DTO /// A color set with all DTO class properties set private static void Decorate(DatabaseManager dbManager, SidekickColorSet set) { + if (set == null) + { + return; + } + + set.SourceColorPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceColorPath); + set.SourceMetallicPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceMetallicPath); + set.SourceSmoothnessPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceSmoothnessPath); + set.SourceReflectionPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceReflectionPath); + set.SourceEmissionPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceEmissionPath); + set.SourceOpacityPath = DatabaseManager.NormalizeLegacyAssetPath(set.SourceOpacityPath); + if (set.Species == null && set.PtrSpecies >= 0) { set.Species = SidekickSpecies.GetByID(dbManager, set.PtrSpecies); diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickPart.cs b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickPart.cs index fd2fdf2b..d0ad6246 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickPart.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DTO/SidekickPart.cs @@ -222,6 +222,8 @@ namespace Synty.SidekickCharacters.Database.DTO { if (part != null) { + part.Location = DatabaseManager.NormalizeLegacyAssetPath(part.Location); + if (part.Species == null && part.PtrSpecies >= 0) { part.Species = SidekickSpecies.GetByID(dbManager, part.PtrSpecies); diff --git a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DatabaseManager.cs b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DatabaseManager.cs index 80378c09..36ae79e6 100644 --- a/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DatabaseManager.cs +++ b/Assets/External/Models/SidekickCharacters/Scripts/Runtime/Database/DatabaseManager.cs @@ -12,7 +12,9 @@ using SQLite; using Synty.SidekickCharacters.Database.DTO; using System; +using System.IO; using System.Linq; +using UnityEngine; namespace Synty.SidekickCharacters.Database { @@ -21,11 +23,18 @@ namespace Synty.SidekickCharacters.Database /// public class DatabaseManager { - private static readonly string _DATABASE_PATH = "Assets/Synty/SidekickCharacters/Database/Side_Kick_Data.db"; + private const string _DATABASE_FILE_NAME = "Side_Kick_Data.db"; + private const string _LEGACY_PACKAGE_ROOT = "Assets/Synty/SidekickCharacters"; + private const string _LEGACY_TOOLS_PACKAGE_ROOT = "Assets/Synty/Tools/SidekickCharacters"; + private const string _WORKING_DATABASE_DIRECTORY = "SidekickCharacters"; private readonly string _CURRENT_VERSION = "1.0.2"; private static SQLiteConnection _connection; private static int _connectionHash; + private static string _databasePath; + private static string _seedDatabasePath; + private static string _packageRootAbsolutePath; + private static string _packageRootAssetPath; /// /// Gets the DB connection with the given connection details. @@ -39,7 +48,13 @@ namespace Synty.SidekickCharacters.Database { if (_connection == null) { - _connection = new SQLiteConnection(_DATABASE_PATH, true); + string databasePath = GetDatabasePath(); + if (string.IsNullOrEmpty(databasePath)) + { + throw new FileNotFoundException("Unable to locate Sidekick database file in this Unity project."); + } + + _connection = new SQLiteConnection(databasePath, true); } else { @@ -100,12 +115,12 @@ namespace Synty.SidekickCharacters.Database { Species = new SidekickSpecies { ID = -1, Name = "None" }, Name = "Default", - SourceColorPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_ColorMap.png", - SourceMetallicPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_MetallicMap.png", - SourceSmoothnessPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_SmoothnessMap.png", - SourceReflectionPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_ReflectionMap.png", - SourceEmissionPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_EmissionMap.png", - SourceOpacityPath = "Assets/Synty/Tools/SidekickCharacters/Resources/Textures/T_OpacityMap.png", + SourceColorPath = GetPackageAssetPath("Resources", "Textures", "T_ColorMap.png"), + SourceMetallicPath = GetPackageAssetPath("Resources", "Textures", "T_MetallicMap.png"), + SourceSmoothnessPath = GetPackageAssetPath("Resources", "Textures", "T_SmoothnessMap.png"), + SourceReflectionPath = GetPackageAssetPath("Resources", "Textures", "T_ReflectionMap.png"), + SourceEmissionPath = GetPackageAssetPath("Resources", "Textures", "T_EmissionMap.png"), + SourceOpacityPath = GetPackageAssetPath("Resources", "Textures", "T_OpacityMap.png"), }; newSet.Save(this); @@ -206,5 +221,216 @@ namespace Synty.SidekickCharacters.Database { return new Version(GetCurrentDbConnection()?.Table().FirstOrDefault().SemanticVersion ?? "0.0.1ea"); } + + /// + /// Gets the absolute filesystem path to the Sidekick database file. + /// + /// The absolute path to the DB file, if found. + public static string GetDatabasePath() + { + if (!string.IsNullOrEmpty(_databasePath) && File.Exists(_databasePath)) + { + return _databasePath; + } + + string seedDatabasePath = GetSeedDatabasePath(); + if (string.IsNullOrEmpty(seedDatabasePath)) + { + return null; + } + + string projectRoot = Directory.GetParent(Application.dataPath)?.FullName; + if (string.IsNullOrEmpty(projectRoot)) + { + return null; + } + + string workingDirectory = Path.Combine(projectRoot, "Library", _WORKING_DATABASE_DIRECTORY); + Directory.CreateDirectory(workingDirectory); + + _databasePath = Path.Combine(workingDirectory, _DATABASE_FILE_NAME); + if (!File.Exists(_databasePath)) + { + File.Copy(seedDatabasePath, _databasePath, false); + } + + _databasePath = Path.GetFullPath(_databasePath); + CleanupLegacyDatabaseArtifacts(seedDatabasePath); + return _databasePath; + } + + /// + /// Gets the absolute filesystem path to the Sidekick package root. + /// + /// The absolute path to the package root, if found. + public static string GetPackageRootAbsolutePath() + { + if (!string.IsNullOrEmpty(_packageRootAbsolutePath) && Directory.Exists(_packageRootAbsolutePath)) + { + return _packageRootAbsolutePath; + } + + string seedDatabasePath = GetSeedDatabasePath(); + if (string.IsNullOrEmpty(seedDatabasePath)) + { + return null; + } + + string databaseDirectory = Path.GetDirectoryName(seedDatabasePath); + if (string.IsNullOrEmpty(databaseDirectory)) + { + return null; + } + + _packageRootAbsolutePath = Path.GetDirectoryName(databaseDirectory); + if (!string.IsNullOrEmpty(_packageRootAbsolutePath)) + { + _packageRootAbsolutePath = Path.GetFullPath(_packageRootAbsolutePath); + } + + return _packageRootAbsolutePath; + } + + /// + /// Gets the project-relative asset path to the Sidekick package root. + /// + /// The asset path to the package root, if found. + public static string GetPackageRootAssetPath() + { + if (!string.IsNullOrEmpty(_packageRootAssetPath)) + { + return _packageRootAssetPath; + } + + string packageRootAbsolutePath = GetPackageRootAbsolutePath(); + if (string.IsNullOrEmpty(packageRootAbsolutePath)) + { + return null; + } + + _packageRootAssetPath = ToAssetPath(packageRootAbsolutePath); + return _packageRootAssetPath; + } + + /// + /// Builds a project-relative asset path under the Sidekick package root. + /// + /// Path segments under the package root. + /// The combined asset path, if the package root could be found. + public static string GetPackageAssetPath(params string[] relativeSegments) + { + string packageRootAssetPath = GetPackageRootAssetPath(); + if (string.IsNullOrEmpty(packageRootAssetPath)) + { + return null; + } + + string combinedPath = packageRootAssetPath; + foreach (string segment in relativeSegments) + { + combinedPath = Path.Combine(combinedPath, segment); + } + + return NormalizePathSeparators(combinedPath); + } + + /// + /// Normalizes legacy Sidekick asset paths so moved packages still load correctly. + /// + /// The asset path to normalize. + /// The remapped path if it pointed at an old root; otherwise the original path. + public static string NormalizeLegacyAssetPath(string assetPath) + { + if (string.IsNullOrWhiteSpace(assetPath)) + { + return assetPath; + } + + string normalizedPath = NormalizePathSeparators(assetPath); + string packageRootAssetPath = GetPackageRootAssetPath(); + if (string.IsNullOrEmpty(packageRootAssetPath)) + { + return normalizedPath; + } + + if (normalizedPath.StartsWith(_LEGACY_TOOLS_PACKAGE_ROOT, StringComparison.OrdinalIgnoreCase)) + { + return packageRootAssetPath + normalizedPath.Substring(_LEGACY_TOOLS_PACKAGE_ROOT.Length); + } + + if (normalizedPath.StartsWith(_LEGACY_PACKAGE_ROOT, StringComparison.OrdinalIgnoreCase)) + { + return packageRootAssetPath + normalizedPath.Substring(_LEGACY_PACKAGE_ROOT.Length); + } + + return normalizedPath; + } + + private static string ToAssetPath(string fullPath) + { + string normalizedFullPath = NormalizePathSeparators(Path.GetFullPath(fullPath)); + string normalizedAssetsPath = NormalizePathSeparators(Path.GetFullPath(Application.dataPath)); + + if (!normalizedFullPath.StartsWith(normalizedAssetsPath, StringComparison.OrdinalIgnoreCase)) + { + return normalizedFullPath; + } + + return "Assets" + normalizedFullPath.Substring(normalizedAssetsPath.Length); + } + + private static string NormalizePathSeparators(string path) + { + return path?.Replace('\\', '/'); + } + + private static string GetSeedDatabasePath() + { + if (!string.IsNullOrEmpty(_seedDatabasePath) && File.Exists(_seedDatabasePath)) + { + return _seedDatabasePath; + } + + string[] databaseFiles = Directory.GetFiles(Application.dataPath, _DATABASE_FILE_NAME, SearchOption.AllDirectories); + _seedDatabasePath = databaseFiles + .OrderBy(path => path.Contains($"{Path.DirectorySeparatorChar}SidekickCharacters{Path.DirectorySeparatorChar}Database{Path.DirectorySeparatorChar}") ? 0 : 1) + .FirstOrDefault(); + + if (!string.IsNullOrEmpty(_seedDatabasePath)) + { + _seedDatabasePath = Path.GetFullPath(_seedDatabasePath); + } + + return _seedDatabasePath; + } + + private static void CleanupLegacyDatabaseArtifacts(string seedDatabasePath) + { + if (string.IsNullOrEmpty(seedDatabasePath)) + { + return; + } + + DeleteIfExists(seedDatabasePath + "-journal"); + DeleteIfExists(seedDatabasePath + "-journal.meta"); + DeleteIfExists(seedDatabasePath + "-wal"); + DeleteIfExists(seedDatabasePath + "-wal.meta"); + DeleteIfExists(seedDatabasePath + "-shm"); + DeleteIfExists(seedDatabasePath + "-shm.meta"); + } + + private static void DeleteIfExists(string path) + { + try + { + if (File.Exists(path)) + { + File.Delete(path); + } + } + catch + { + } + } } } From 3ae3cbcac16ef81b5550218baa07195ffcaf12fd Mon Sep 17 00:00:00 2001 From: dal4segno Date: Sun, 22 Mar 2026 23:51:38 +0900 Subject: [PATCH 10/11] Update ignore rules and remove tracked Sidekick database --- .gitignore | 2 ++ .../Database/Side_Kick_Data.db | Bin 2383872 -> 0 bytes 2 files changed, 2 insertions(+) delete mode 100644 Assets/External/Models/SidekickCharacters/Database/Side_Kick_Data.db diff --git a/.gitignore b/.gitignore index 0a76a210..45beccb4 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,5 @@ Assets/External_Used/Models/Human-Custom.sk.meta Colosseum.slnx Assets/Screenshots Assets/_Recovery +Assets/_Recovery.meta +Assets/External/Models/SidekickCharacters/Database/Side_Kick_Data.db diff --git a/Assets/External/Models/SidekickCharacters/Database/Side_Kick_Data.db b/Assets/External/Models/SidekickCharacters/Database/Side_Kick_Data.db deleted file mode 100644 index ef1c4da87de6461fccf96b3c41eb18e7ff0d8df1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383872 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�J;F`T%b>$O!cEW1pu;_~gIi0X!#$E@)>2Le9qtisdR_({ z?h$T!UIrcR5pH^31|9B^7}o(h+#^x019Z4YxaoOmbht;j>3L~%xJS6@d1-XGM|!Ca z(&%uHY^OR%qr*MIP0vdskvYOm&r2hbIl@iPOCymvvW@EiiOiAnxek!X9OmwYrIE-S z=I({1?}O{H!`!{FG!mJ^+`X_g5}Cu?y|6SAnZw+@urv~x!w22lbiEM|3gD!X$QXY2h&{ za}Adf9iuW=yFWkfFOU11X~8invoA3aA9nADZ7Cs~wAdJxxhfioBqPq&nf2@c;Z6U4 zVb8aF(mfyQd3DckhW;URI`l;7rqHhizZF~zejs>#@RtH#4;**r|6Ln+h5c1~&VG-5 zmHkrdOYZsq2d%xYzDmMcakVNl6mw!j5w8vQw6I#08RR+;RjV=s+@Fu2T9x58)Y4*VRc4R7r5N^JPz$M5 zncZ9mB5GA;S6^>@$a7OMExJWzc5)pEZc!QTMp#;Gi^^Qgbs)4wWp;2Kh-^`rB-eq! z7L|GCa>x76M_h}_a5uuz!dg@&&UGNFMP*`K2Z&k@N4X9VwH%Ic-vdM~hshgZh*}Oi zTnC6+4)<~$AZj_ho$CNm%i)W-4iL2*CU1lxYB_uX*8!rI!`rwH5VagWpXnf+7Syt- zs1A`cLeipIbcmY~k`~sYL)46rb^m|scb@;>7Wzl``v39JjiFx-em%Gld~a}H@TGw- z1}5C+{|yIz#{LWYv-Vr;OYEPr8t(kR-?1Y8fA#16ANAjQ?kro(J2efM222B{0n>nK z;0Mw`I4x{euSvKOWNC4;I>e12OADOUA#Ma&TI8$_aU;mmLT7b|8$p&9JF7$72(q-` zSsmg=kflY>>JT@AEG>Lihqw`BY4Ni<#El?J3!v2@ZUk9c1g#EnBgoQ1XmyAiL6#On zt3%ufvb5kA9pXlirA5E!5I2G>E&N4?xDjM&@h>{WjUY=4fYBjt1X)@Hj1EyF$iitM zFgnD|14)a4(IIXgNLmn#4sr89(xPB=h?@tJ76zk3+&qx9I2aw`=7FRI!srk;4gNbNuz~1#LWXqqlG!d%>zlJg*n8{14*NWImFEaNuz~1#LWXqqlG!d z%>zlJg*n8{14*NWIYi9^G3Wn(AnP9Uo0f+8RrZ{3N6eyXCP8&Va9KY#3PBw(AHy#yJC#LJKp_8Hf~GnDGN#2WVl&_j4Vfg&C&| zgt`8IK`hVAhcpeC222B{0n@+_qyZ;|rgog0E0#i2JI>7&OQES9znWW1p{X6;$E~H% z)Q)p=#ZqW$$GN#;DKxd?++48~n%eQpxen0Oj_>64M)xgW3rqI-mb92Q~ zXllo~xne0awd2EF2WV=?hmu3Ct@gYYK~p6Q&M}A-a+q;$u2>2= z%=qqTf1=lw#ap}L6mppHUCF3BH6Y=YK@Ky{%>zjxhZ*M>L<%{~I5!U@g&byl2iE~| znDHdn0dkmeZXQSqIm|f6AX3O-#<_VQDdaHYF|GsTFym3K1LQE{+&qvJa+q;IqZ zxw+@pL*ELW3_TjUF7%4vSAsLahk|>9=LNnH7!TYZ*b@lY9s4u(8|;Mr<5t=Fgms5? zk^kHNl>bTpEkBUuh51cQ1EvAffN8)qU>Z0_8gNobZO6B9>no(Td&OoG4 z#fd&OoG4#ff+8RHB@3N6eSXCP8&Va7NEkwObI#u+9Y6oQ}EvKMNOA<}H~9OarC?(|~E<9BIHwp{X6cfm`FCsU5wZ%b=+pJwRnv z(A19Zr`A#{Xlh5VW7bm63Yyx{Yq|G^rgroiE`z3alzX1k3Yyx{eeOyA!DxKzwV|_u zrgrqI*idxX^St~Dn%dDTt-gY$c62Y-0h-#;%eW5E z!i-+Zb$}LTbcE{wEzIaJ_j%C5j1F<{4K2**AlCs}m{HC^te}M%3%qnv?QK?^g=8Hg3MFr%D-SV0Rj8sj=Z3o{z!IzS6E${C0iv@oNbfmlHc zGfEkV_4EI)*?j)r1wH@NbEfBso`XHV68c8yc<7PP)uERKzZ9Gdz9Tpid{N+Yfu{oZ z1a=1ecGLc2`%XJ*{hL*=K4!hvJ^%kN{*3>_{@0u%3l{S>O#`L@(|~EfG+-L|0X5*P zptK$Bj&9>RKxsRAKGQ*XMWpTK zLHVah1+gO3R);tRu_D%1hd2eXBG^`kI0dmH+E#}+1+gOBR);tRu_E49hd2eXBH&hs zI0dmHDn^Gm1+gM5Mu#{Bv4Sq=Zs zbCy&Pi|As`k_uuGUCdchK`f$+IZG;tMRYM|Nd>WpF6Jz$AQsWZoFx^+BD$Efq=HyP z7ju?W5R2$y&TlYa{tgh?{0QK=)S@A z1J|6Z$+ge5)A@bpjI-YPZs*mG?>f#osvY+_F1LTjK5nnHSNxm?6Z&O!1#|^;1#|^; z1#|^|r7GZGL|uE9w3LgeYtNFFa#8Bq{QdH0IZL@1#0+OC7p1LL`=KnQu_$S+%5Vl^ zQOa7C;S9v0gtaQe8Hh#cYE_0a5Q~!4stji!7Nx3H8O}f~N>r;doPk(GQ+t*(5Q}JP z&vFK05l!t`&Oj`pg*nR^h()w8XE_70h!*B7XCM~Q!kpy{#3EXlvz&ogL<@74GZ2et zVa{>}Vi7IOSQWLGGSsG__+7`pW{=>%K3dsU7=3EEY9F;;wA-(+3|FOCQD}n%c4Vb2UIyJN7=V z254%>_Hi{pQ#X6zoS1`B9m#`aJ(SU?Li#u`)MXw0+Az+Y4x6#!9&wpoJMLiG(Bmu+?+y7SO_s z#iOxk$jWdV3us}+?hg6_rIzRQ0$P}{-Qj339VaDWhAcz{Eg&B)-H9!k97U61u7G^BW)F5~N|6@PR z{r~;WPm1;biyhx^bUU7K1nfVy|GxdS{jt~8utguNu7Iw9u7Iw9u7Iw<&!+;$0&?52 z5I4+1ZaXF)HAM`wklT(4W*H8LEtWqr7LePH31%6IMXZ)tT0m|)W-!AnV*$DCn2)Og za@#Tas41cb$Zf|s2(f_Nc8r4%3&?H9I0&(T+;;3%t_H|$$K>N6ENkFjklZ$Zul%U3 zpIKAEzaYJ>8S3Lg65N`hUM?g}j2Y_TLK4N8p>8fDRg4+x;zE+en4wNCBwdUdI>Ut| zj4?x}xsa4GX6O_bLK-t_JIRIit=Q8EE`&5@)OMT;A&nWeb#Ni1F{8G2E`&5@)Yis@ zkj9MKTDcI?m{Hp+TnK5*sI7$yA&nWeHFF`PF{8F)TnK5*sO=~hLK-t_JHmyK#*EsU zxDe8qQClMu%3c3I|FhlyKjnDYagXCt`(N6>Xn+3aGlN_Qt>aK#~rmba3S=#qqcf3gdTU)R>y_VdVtHIpBa6c%b=ebeTvJVpBeoWmq9->`bjQ>erEI&Tn7Ej=#yLq{mkgcxeWT5 z(I>bJ`kB$+sdJfDU(ra}x{ba7R8EiUiAomiPOj!yS1r5)k(lM@<1y_&#ZLxFa73`GVm< ziB$$2?g-~57SQ32aBgA&9q!0Jt_J9EM;_p6fDU)$y<82@&x~+xVgdck2sj&y3u|)d2m>$R4f+=x0Vq zH-Ua;gme?=XGY4o8layUDGT~SM#S=G8~w~kDOUsZGb7xyBNouljBwA6SU^8B!aX}8 zi+*NgH+3Fl(a(&$T{xG7X8c!_3Vh;{Qr~e{r`XN`hx3uSKQ@s z{)uzc`5EWioDRpg9fOXi95Kg6`#0^q_9uUdgAl!IT>)JIT>)JIT>)KzU#$ulS%kVH z+(W9e2z5v9;s#p?bw^^{U<;w{2=|bxEJEE8?jcoKgt{Z#L#na}bw@&64G`*%1i2a@ z)E(g-Qk6xhJHkDrDvMBegnCGokwvIG;^S(7Psu^MW{Q%>4_{t-4RYt zWKq$K+{)De70t*kObz^5sc7;y*bkF>A}bk<8RGOrRyrCp#OaBwgfwP|(-T=KY0MC( zC$f^#m?2J2WTmAsL!6$-N=##hI6aY-n#K%qdLk=1jTz$fL>4{GFsUc9=xK&+oSw*{ zrx_;oL>4{GFsUc9=xK&YJ&{FEGfe7;D5k`ThUj zbDnqBIPZ0CbNsdAw;V4xN*!MNpV&w22Y$7N9r|c=1#|^;1#|^;1#|^|=@sy2k?#(Z zSTl=!cbLSQS>(IJB-YF#-yJ5gW)}JGFo`v@$ajZ1tm)4p-yJ61L>Bq(FzF_;$ajZH zH<3lYJ50KXEb`r9(oJNM?+%l0B8z-?m~<0a$#?Vj*bj4VA}jT-%5ZKXEAg(%aBd2M>94tI!q-b5B1?$Cq&3V+ydSREVsnV}B^O9JHq ztHmp`=x2uB&(#3^%+UL|8layU;+{8=ML#q209OO_Gehs?YJh%bh;tKJ^fN>6=Jtbr zX6SzExfWUUGedj18layUx-VQ3HUgGEKj>$MI5&|+KQr_$t_J95hTa*C1WSTptMeND z%+Nht4baaF?cr*GerAYs6It{#Lls;N(9aB&2LpkCzf9C1_ueD^Tj+fU{mf9Ac+x^> z>1TW04EmX&QdNU>Gw5fAC^wP2{=aMe`~UyeJ?Vbg{Z98**I&E7;`*$s!u2NSUpT+$ zJm@TOdL93_W6bf4Iaf$MF z=&f80P~Hx`g{uL|+o8L-8lb!#l2584YJl=~h=dR*Z-*jW4N%?=g{d0Mqr4pog(||K zh}F~k=26}b1%nmhVGUMS;`1nPhd2l^kMefNPt{-^LClcB)c`@vkdLbYf|#K@xf&pd z8R8(sJc5{^+k+*cvWV4{>pX&(q1yuDDRiQZv;Ni8Jc5{^TLV6Ssb4;YZoMm`c?2;- zx2PJdlkv|>5R<=GevpI^^HRi^Ar3;!OA=#-I0!K>O^g}hAjG^xF=mK^5c5*Sm>~{A z%u5zyhByc@FI|io;vmGlgfV7_gAnsl#+V@vLd+wL86+XZJkpp!5<<))jTs~%#5~fN zK@LLX?*IP;d;kAGxst91*SlR;Iseu<;jD7L!}%u1pF2M9cvf8hJM4dC@3()#V%VVn zSyw<;KvzIlKvzIl;Mb@E{&_^WgCx0}M}#{_lFNBSxPv6QoJWK^NRrEWM7V<-x%AH? z!W|?H#5^M0LEACr>4yG!M7V>tqs-$C{qu-$2W>~hl3gX@>I&K?tD7hOc|^E_wkE&) zu(;Cp&m+Pev^9z+0+w4{p8Mw!;SSmkGf&g@&m+Pev^6k~)Ar9J!X32Lhm2sU)qJOa z9ue-Kt&S@Ms+d7rEmsIsF@v@m?uB zPjlx1TA0BDTn*5|3_i`(04>bmQvrVT~tQsWFeHcJRqyX&}CI z&*r)rG_`{tXU0;-Jeu0UC%77*sU7@Ht_Emo2OsBZfTnivV_Xf;)DAu-j;$|en%cpSM*QJesN5=prgrer-1yikgQj-y5r5QQ9w@cSps5|)pR0jY22Je%XCUU$ z!VEkd4@P4F%R3d&!VEmbWzfP5a0X%?EzAICAm-7+3~&Zw9xcqkgW@h}p&-nk(t>y3 z%-;&vqywCRm`4jUz!`{nv@iplftW`NGr$>$d9*MC4{$X=3p2nOhY_Wgv3b|GNv_|Nl>(Sx=+q0nZNi_uLoUb?*D!SGoSqHRbx8 z>s_vG&i}{x+s;Zc|Nk3~zjS=baY(HHx5fUa_Ote9?Ym#&p@n`qT>)JIT>)JIT>)Kz zU#$ul^GIn2I6^s(ly;yzQnvh9xpi*FHRh4h4wQ+DiPEJZ;kp^5v;(DT2(@koDeVA7 zD2;ifv;*9ur{p#6x9P_h%UM z2x10;L0>Q;YNr}tg)heu#0-!S0zu3G_e6+!1Tg~!R|5nw13s<>2x12A{gk&!CK3~>-5BUy|Y;vhsux)?LW zL5PfmF=mK@5V`yRA7B6e|9^3(-ACN}+&f(V!!_-y7T5nZX<`{N7 zEuR0k!Tt?qE`$=t?L4Vs% zYRe4z+kR48X3*dEbK26ML4Vs%8i)+~+kVnOWYFLClLjJ#{F@1c@VEF7>h0~xe1eVl>FpoQt<3`7PkOdn?;GH7A?9;9w?$)JVl;|xRwEleM0 zATnrS`ZxoTK?~Ez8Hfy8n7#)>;+X+~n0XcyyzwN17N(Cg5E-;EeVl>FpoQt<3`7Pk zOdn?;GH7A?_Hs2q3)6R>ze4;3l~~mcEleL}Aad9LW#;|=Kk|On+va`9yUX)K&%CGE z^PuMj_Yd52?j|w+zti=7*Nm%Ptp9hl^SjP-&T8kq&dVL&af~~v9D5v>+W*S_W%~>E zvWs9iqrU`Q0bK!I0bK!I0bK!$3K$vmw0)eT%%G?3;~ZrMJ#F7T+&Bt7ZQmYl9EF~? zk8+eo20d*b2O%=(Y5U6kCGt~@@z%K+*T|r!?JEmK!oHAY20d+Gsj9)c`$13J$3ch; zdfGk?LS)d>_Hhs*gPyjJgAf_?w0#_e$e^d~;~+!^K};V9Auy`;6Z3PrE2x9s|;#q7J))@pbed3uI zQ6pk`J&GWvkAn~y1TlSnt_BEV`V6iH2x9ttTn!M!^xetT06|RO9b#P%>u3LE5XAJ| z&K(g7zQVf6so>{)ok3LI1O^fUbb9fUbb9fUdwrUjctcqFZxN zLPATaZp{!0EhW1(LnO46?$!)(&@wIItr?=Ar9Um@tr_ABL>lRBFKHmsNN;;d1Cd60 z+e;dVG}7B%(m`5cHes+eBVK%`N{ z^pXZ5jVh*>G!SW2F}l@=_L(B8dXfMcn$q=87Iis>Z{L|Uqt{QdI1oPkJ76r(bnfk;ae zqcSfsRWQ<$#Hb8sAktFAs0?Qy(h|g|3}+zH(!;0>XCTs&!>G&)Tn(g#Q5niW===XK z`XQM90(Av+1#|^;1#|^|ZWS=n64k1)2WKhMXli>oOPNMf+sj$XG@9DpXSuNyn%Z8< zQW|MAwY{8yNTaFkHk{Akt`Rd!OcNfTp&WGZ1MswY{8yNTaFkHk{ zAkt`RdpQGqlM{th|8db>ER4S z8ZAr@XCTsOVR|?Nkwy#C^Po{~Sl^?OMhnx!8HhAmm>$kRq|w6ka0Vic7N&$YN=osq3V5?%y@iXli>(RSnk7psDTQ97GyDOb_QE z(&%A&I0unN57Warh%|bb9?n6e(Zlp`4kC>nriXJ7Y4k8XoP$WChw0%QL>fIz59c7# z=wW&|2a!e()5AH4G<H)|kJ-FCAE0@ZCdYamd?bh8EmRZKT)AW+40vjzfHOgCvDQmA6ONdu8W z71K=`h!m=rZqh)cP{nkU1|o$jrkgYnDO54twx)12SZ>vC^ruk8blVz(V&TKE)l)Q5 zsA9TF1Cc@%(@h$P6snkR(m1xI&9*B!g+LY4O&W+4s+exlK%}IK$=~PJ z%^8T4L@_G!GE)X4B~6UVyu?(&NJ$c-GL(VP^Z)A%VDvxf3g`;x3g`;x3g`-~TLB{_ zWvv=}aF#M9VXew=mNF$>t;)Q}jin^3RhbvKv6NJ`DnnUHBPCI-%5VlEg{HRqdFo-| zDKxd+&v7+CQ``M4wHA2_O>H-4AW~>*yEy}qLQ~t#8Hf~`+U^5f4baqfKh4zuO>H-4 zAW~>yx;X=pLJQN)8Hf~Gm~PHMq|m~2a|R-X7N(ms5Gk}U-JF3)p@r$@3`7boOgCpB zQfOhiIRlYG3)9URh!k3wZq7iY(86?c1|o$PrkgVmDYP)%oPkK8h3Vo9L<%iT*Ta!` zC>AKUFc2xUFkKIE8MH86oPkK8h3Vo9L<%iT*9W=x9keiA4+csCA-`n}(86?a1|o$P zri(HV`ucy}VU7MrT>)JIT>)JIT>)Kzbt+(_(A0KumNJE=wu`frDKxcR4{&2CG__rv zrA(oz?V>EDkwR13#Tkecn%b`WBfhW^w3zlYQfO+s_Hs2qQ`>c)n2#(ATCIDYLQ~tt z8Hf~`+AhvOq|nrMy_2f}n%b^=xEi3T?b^fD08MQdXCP8&VY)a2kwOd8RURpg`a?d8 zXF;UU!gQ5!8MH86rK$$&+>>LZ(86?a1|o$Pri(KWDYP(MoPkK8h3Vo9L<%iT7iS<+ zXkofI1Cc@t)5RHx6k3=r&OoHl!gO&4B83*Fi!%@@v@l(qfk>f+>54?k!r_qBb0AY_ zVYil7mYKMU%!!2R+mv@l(vNHkOyC^HiU@3Bvzh3N{$#M2-mY9BINXg_FSx;O)o zLJQO7=W2i!rpw@JfEK39$Mhz0_y0d^KL79EybInI?}Og!J^$!Qc8^0U(e-Dpv#w`cZ*$q5-*WajpL7NtKX&|{_LTKA{CpW-CXxnv1I36kuS`Oq8+IHQ}4X_Z}cHI{62cnh_(n}$< z?YcD>35Q~q7ikD>yKYf6Sm%PvpOVlvf1i9Oi6Bx^+L|E_L8K(LHA5VNNJ(pJhByR~ zlGxS^aR?$MwXGTA5JXCHTQkHVh?MlUW{5)&DG6@P5QiXAQpK1d4nd@l#dMMgB84ob zlSB|HWHFs2f=D5Y=_C0}WEvY1X5 zK_H9iv^B*HadB<2D1kqPET+@e$Q1%vOec#Vki~Se2m)D5Cy5~Dki~S`>Zmhf4p~g6 zt(Gdp9I}{B4ngGR|4Ys5{~vk3>TMJLf0yTno_SBRc>doF?jN}4+)eI%?wzjhyJlSV zu6Mhxc7E4+&ROle*Lk_)JC1Qjm1B?NQu|-ozifZOUV8BlZ1h*CE1)Z&E1)Z&EAVSy z0skDz+D_6@&PiFDzgNDKbCh!u)~d|Q%#hNUlde`}USbAP#++oeDnmI+V@|4CmEruu zoJ6%M!}*6fX=+vGMP@W<%t=zKGB0p7kfK&)IR7vwL9NPg{$UP1Z725(h&lAMozI1Q z!QAt{)!bcydAm9Ew4Kj#H9$|>$@zylbTFNqf0#oD)5-aVIdm|c2bhafV-6im=hIvb z(7|+a{$UOsOeg0b=Fq`(a{gfs9ZV zhHT5uNeE+xxVG$^lrUz9Ys=0_3S)+-wrpC-#s&rMj-st=@=UL}7&bK-3j&C{o98Wre_8;4S&wkSW$gll) zNEbj?KvzIlKvzIl;Mcwa{yAxF%|Qt_?K>y2tr_B`ednaMHACFA@0{eeW{8{ios-_y z3~|%Ga}wN|A#U1tPKsMIbTSZ?pB6KNbCTSep%Yw4np-n;oC`^GYlb?wkW{y3sGSQ* zc58;(xR7+WW~h}5NqB39Ug1Jg-kPBnE+ol}8EWQ2(#)8lW8ru>9JZRuo|9}S> zMPindv2#+*n4u#~o5epT*^C+DrhVt6n=wO;{<1(gXf>xlC*h14I!xUNFel}V8ET+z z1elX_#thXny%ztRv@>Rioc5J?#thYRg^+s24ApRFgyb`3sG2z=j5+i(XULu{`k6Ci z&ldg6nU|O<7<1@n&X7G@^fPD3o-O*BGi1*e{mdD%XN!L3%nMu%(9fKqdbZmC|Jo1H zbOCe)bOm$;bOm$;e(DMsbLeo-kaNH2aLaaaduye zCVfsS8I|GIzMGRsMrF9Q@8+bDQJD`ieGp?#5*d|w&@Uch=eKBJ8go*}s0_FE-JAq6 zDnqS(XUs_-qcYr@HFJ{3s0_De&79ORD)RtW1Bqi)hFh~{PTCliq1LR?*Z)8DkVgk~ z1#|^;1#|^;1%B--V9ZHktHvJO+IMqO*s9F^VZT_B-D29$n3KR(W%hDoDd}rf=DvV0 z7`NV!sJ$_Z9_Dl~6kqyOM^>=UFpD1MG`IHMEP9yJey#@SVNM%d4ba1!_Hi{p z4|DoXt_J8~PIJrC%%X=meLGhJ^f0GyQ#Dxky$U_d>03*Jv2Z~4j@HTO>;GT-p_?v% zu7Iw9u7Iw9uE0-S0b>?j?de<8SZbZIhcSz;_7pd#HjA$I)WaboTxLDiMOS<3AufZi z_7pd#HjA$I6gQ_fi>~$*H>Wm>uJ+V}fpT%ZY&qUXS9?m#sfBz2t97_%(bb;f=G11< z)t=(!)Mllt&0jB{;^x$5C974L2e=wYRjV>$PK~L7M71hI&8Zo)(!8h)*9)7K2>xIoq?V>VVFKkv~7nQk( ztAVsGDzk^Hfut@f!}Y>urF2mlt`{~dp^M6t2P#5kOT1&<_fhFwRHjV)EQG@q>tFX7 zvy!=}OsT5Dy8DsJMP0BOWtdrB$pnWmF~q1aZ8WQO88=ixTVKtrF=0%)Y4=A zSxH~a5VthQth6s?h+7(DR^k^k#4QanEA@*R;+6)PmHfpFaZ7{DO8;VpxTQg6C4ezQ z+|nSkQoxuYZfTHNNnp$nw=~GCG%#j}TN-3mA{aBoEe$d&6^t3;mIj%X48{y`OM}cx z2V;h~r9oyTgfTe-VayPvw!B|8o21MMpr;r zKvzIlKvzIl;5Dd#e^%mKbCklZMK&w-tr_ChBAb=`)(mlLk~@ zNp3B&S@bg}I_?2dL+WB+<{Dlxv7s*C2_0<|MaI_?+!`WD^fM>9HAIr=XHIf!h$PX^oaELJNur-Q$*m!hL_c$qT0_i2Wl7Yz zC#e<6{7I>E^Ow;l$SLBaun<7q1pKFG=DdMCAx@L%*B2G%7YlgTf;-nq(r)Ah?^o#N~LRtxGCbKq(nAmh?^o#N@Zh)xGCbKWHx4qn<7q1XJdxADdMDrHfD&M zB2G$aV}__HVt-On8#BapY?IR3m?5rXo0Qnb3^j#)!Sbb*K-7&@tM7XEC#AMALyf`G zK-@3y!BL-uLXz8;h@Ahg`03{V z>z(g*UhVj<v+JT4_#M4S3p-lS3p-lSAed7KPly|IrQM> zeUp;znjvo9H;H!l1UK)SM7w+9Wo9sCB+>4kc!?QH8A-IeC%AdvB--5*+`MlR?d}O~ z-ZzPM_r!}_4bbkMc!8?{+T9b}yl)ci?g?(*H;H!l1UK)SM7w+9Ij#n1cTYUa)d218 z32xpuiFWq{H}9K7RC9uy_eE55;s93zL^UU#=4ybb<^(zKi>T%VIq!?8<^(zKi>T%V zIq!?8<^(zKi>T%VIq!?8<^(zKi>T%VHScRAgW}CM-(@{Pc4iUPoFF^1h-yxdomoUR zC&7V-}BmC|5w@f(8C73p{{_gfUbb9fUbb9!0WmKMpC+5HTK}v%S%d@t1=&o`y&C% zb@`K0<*E#~US3k7T$On+;1la`TRl@NDNU}*aL=GhN|LKG+d8eTDIu=P+{@KKvKW=&*2_yu6{9lmjQGUiSS=`#lqg1J z?%`@6O^nLy;c6gBjLLB9tT#OcwGTq0bK!I0bK!If!C%2MiRO0@lYr#9%*Gcm4V#$xLBc_8EPW8JQYKyG_n4C;v*B#_%4zmuv#0=eyRZmqloa@*s#Q#D8+w>^Gau*_fT zmqX3m<}5UAreSqI&2(-NFa^ruyGI~fi$MW#zBY#(wGigTO=IuhbQ5kz z>9Dm%W1=PDTmQP!pFkSZVS9yHfzzKr8q;BGi3g*xfW^}({0XEn9kym}Pe@}rY#fA0 zAdTs;aS$SbG^WGGL5Kv>m=0SLR|upr9kxcM5V`CB=YO{O|0&1Ij(Z%J+W*r2Mf>xw z&7eWQimrgJfUbb9fUbb9z(rO8e*!&jhmF&h3G}!fHcnqA(BpR4IDMHwkK19Z<3?ZT zaXW0a%;?LXK#$vDaar5(v9iL;4&PYg(t1>S$WiS#_TeHIRZvWjHsHkbp*II5&|%Khwdv zi3IwYj_0@?9d7%>CBaxQ5MF=I%SfQZZGVW%pu=tF+(ZH$Zu^I*wYwAO zaN9XIkwAyr{vdTvZ2}!`JLe`6=y2OPH<3Vx+x|YT2Iz3x_i@)_=y2N~;A(&lx1Dnn z3G_4V?+M34r9rEkWD@9S+Br9oKtI!dKer$BGwpl18lazPzb{e|s0dh@n*{oq_ItTw zLqF5bxrqe&nf7;b$A*5U{T{9c=x5sZaQi_&)6Thx1p1kF&P^oH&$J6O5iVJ}d1sv) zYm5Z?nf9`9SvVMy?}_VX(9g7&sv4}DK|j;Zxrqe&nRapK`_kvS_r4nm^fT?8n@FIa zY0tR{%b!#9GwpAW1*5?T99cm_lt4ez&bf&M`kD5(GBwD}|3Asz|NrN%FSwp}#a$lf zpEyUIpK-p;>2Q48G3a>85p!&`f79M;fASYN=+L{;70?yX70?yX70?y<)vkb%K&ac! z0nG$L-S!;Nv>a?9)NPM(gDr%*?HtfdAk=M-FoP{4fl#+S%w0qv)NK!O7exql+ePbw z8E_)hZRhkv0-*viw|AF(WyR8RGQB z40@V2QcujFr)eYg#0+|xHd0T_pr>gg^~4N%nl@5T%%G=fBlW}#dYU#;Pt2gFX(RQ- z40@V2TZ>rbCg!(TJ0f@ef8Zy-|Nnc=^UfOQz0PfpzjpkV;{`{l!)yN&`-uI(ul6uR zADym%u7Iw9u7Iw9uD~z60{$7~yKS~+W-W354D#JJ5^K&N-)$qY<_z-PHWF*jAm44X zH8JBZ{|xfoHXHZUsu|?FZKRu+LB88Yx``R&yKSVKm_feVW~<{0fqb{kMm@F4KZAU? zjdT+;$amXFH!&mmZvGzoHtu;7Gg9xW%*#v}j2Ve{Rfc=s#EfJ#D#N*n8L4PghI11$ z649s(=O$*Pp;4I^xf)19qcYs{CT66dQ5nun%t%0^GMt;3K|j;>JoCO~%%GoXdycCC z`kA(8!%?v(3juG;pr2{u+{6s}nKsT%%%GoX`!rVr^fPS-xEi3JX?vQh0s5J?rvlNS z&+`768T2!4oST?IKhws!i5c`WZJ!AE#VWVC7Toe(00q``oIyX+#<__Z^fPUgo6z_F z|H8*WdWX6Kx&pcax&pca7fl6>8FaX9oWGnwhug;a%NcaIZI5$fDRj7PoWGnwhug;a z%NcaIZIr(>X3*ibac*J;9d6qrxf+y2%+EsONp!evoST?Ihug}zi5Yabtq+UE5o3XJ z3pX)?4!89oE`tuYm2(p_=x|#(H!*__xAlYK(c%?iv3R(9w@|Io;kG^)ED4kctZrAB zK|j;VxrrI{Gp(GPm_a|&%DIUd^fRsdxEi3JX?=jJ0s5I%&P~jqpK0aX#0>hGR?bb# zpr2{w+{6s}nby5r4bacD-sdkDOJrKC;cm>JpK0aX#0>hGR?bb#pr2`dXUrE21T2pY z{Y>jUTn*6AwC>?*fPSWxa}zV@XIeQoF@t`lwOrL;om*;*8T2!)W#U;SzDR||tvfU5 zXIe{D4c6Tc`k7YBP3Y_Yi)IL>zYtvkT>)JIT>)KzUw8$K8FaX<@t7}SSkG~w!)?8r z8ylj-ZQUIy3r9m%&pew!huix0cqm#LvAl*uhug~e%NcaIt#9ROfDX6yEnE%I;kMqz z)c_rCYmBP_I^5PMw;y!4t&x~NTppBTUG-V$dKn#VtGKma%q&`df6(E!hQ#v^!`9c> z=x|$u@kq2hVmS|o4!1SH)c_rCtGEf5sR8nsR)ebn@|ad1R|DiRt#@)YKpxY22Ui2+ zF|D_AH9#KIdRrhWt}bQYWZi2Xn*AV>t>M0yz*v2DPrM@ ziVAr)uk~MJ26@aYyW$n`K-9n1*15koW{}6ca&y=phy}!s*542Em{)EJSBM@}%qoLC z=9L>uKK*T&SfNyQJHJRskZd7?s;%Q+8C9&n#ts@|LwT_ko&VrWI2)YrabDy2d&jh+#&MtH3j5#KC+siT@A-ufKJ*TC1#|^; z1#|^;1#|^|ITbK2NMox8A6ErR0){_iF*v*+iLJ_9$z`OlRhcXNVfksb9|>$#=5j70 zeXYuDGs=w;BWSfB$!k?+E0>YFR%I?L^T|)E{YYG^GM920X=_#HH_9Wic&yZFKa$p} z%$vB3l(j1J#_~{EG%iM>>knKdtW}veh|L3~Ru>}|q^nh#E!?q5R;x1JKuFwrGrh*V1x>A)3O5<*y%f zEiKn`8FVczTyNq6x|Wt}x&5GPY1zqT(6zMeU@~i7|KINUchA>6`uhKuGn&$S)fLbc z&=t@X&=q)nRKU1^K(=K&Gx#trAdqb#Cpi$vwosEC#svhjEo5&3fou!en?NAjLiQ#Q z$hMHZ2?Vk&+r$;AVOUN0T|gk)vX#pqkZmD*69{Bm$le43*%q=lfk3u}>`fq$Z6SLT z2wPgn-UPyy7P2>iu%*Qt^oy%f(KuPZZ-TI;#S*wSL>G6-8*HgmN`*wV6z%OGrN*~n!OwzO;rl>|$JmKU-JTUv^_{UB^< zDPl6d3lg^EdlM~8#JGU2rJ3waplfL+dlTqdnq_Yy6tL_wplfNqDHdl+jjpAc>`kC+ zX(oFU=vtb|-UPaqW~w();QIgn@SgNO>ebi(ua9w;K1y8yT>)JIT>)KzUuFf23kYPJ z$w>|bvd!cq2Ljn`fq$Z6F~vc-$8!j7&XaZTtFaujO489wU1b z2xO0Oy@~S(WRG#ZiSy`Mj&Z$-^XOWRalMK2=vt0(y@~VaT8?qOiSy`Mj&Z$-^XOWR zalMK2=vt0(y@~VaT8?qOiSy`Mj(MZLP&6oRf>`&yiSy`Mj(NBYx|U;ZE`zS+n2XDx zYdPlRGU!^4Ik*hEmSc7fK`X0t9$m|^4I&eJn-*?V9>z(g*UhVj<9;QKK3ZLZq<48u}8Ue ztIng3J<7Ev&ZCb#%B@><9)0XlZr!T$=wpv^>sFmdAA5AWAr@CNqE?qy=wpv^t%>vK zV~=vJiSy`Vk8-Vv^XOxba;=H;$Xbqat%>uw={S$9<*0|t zAZt15<}%1yj=H!EvX-MxE`zM)sDsNOYdLD?GRRtvZssz`T8?hwGRRtvZjAZF`m;W( z_e5kZM>oVG;gVpPRR&qh(PC~t$XbpTF_{(f{~z1p^ZuvzcfBXPk9cqM{K)fF&rfsx zuh;+k>4#A|sVkr>pevv&peykDs(|mj^s)Ilj-%XI3VG}ia*hLe>=9~?!#IyT_6XUV zKpuO9>`h1>o9|5=A$t?(V~>!%3G}f?$le6{*dt_b0)6ZevNwS~_6XUVKp%UA>`er* z)?{x2ee4mkH-W6>2-%xJ)^ddGO(1JILiQ$*wHzUP6UbVQki7|HEl0@S1hSSRWN!jl z%Mr3Sfvn{S*_%Mta)j(nAZs~7_9l?E93guX$Xbq&y$NJ3N66j;vX&#>cxj|GWVICL zd1Ng|Jlu6GvX&!mE`zM)h>Oc0YdPZNGRRtvIJgY5mLqm9gRJGqX0F!AT8?buGRRtv zY>bzPI}I%Q46o_+zh3|U^)+VGN2@EKE1)Z&E1)azvsS=3k3RMYImv-O_DC@^U@^|4 zk3CYvWPInPkInZcj&NfsrG4}k8R|76Vu3J8@b-ZH1gO+ zt~W6)d2GHn(a7~CrqRbX-XNcoCYJkNpM6iGk8Ql3%b;s%h zLD$l_gUg_6Y240b(6uyjy@_dbEsb1nVj5jb<5dxV$Ou^7TRn}grSVEGgRZ5K>rG6f zYiZ)JIT>)JIU4fsq0>(4~*+wTb_%Nms$Tm8-3}jf+{9%N$Tn`|G6-ZFH*jAM0@=o5Za)ZQ8;h8XZ(0J`d~c$Wi5S!9V-J(P z3G}gt$=(F|*u!LR0)6aZvNs`FOTIU8nCwlUYdL&FxI!#NX0^2XG`g0<*K-+kEr-e8 z1iF^P*K+$o*K&9#mqFKZcn6n3*K&9}mqFKZnCwlUYdK8zCeXDUzDoF}lAzW7^3&*A z4qwS-(6t;UdlTqd4wJnJbS;OsiLWN^x4b4r*K&9(mqFKZnCwlUYdK8zCeXDUCVLa; zS`L%F33M%o$=(FImcwLk0$s~tvNwUQ<*>IrUJ{5}^d^3W>;Hta!TBDizW)DNM@~Ag zE1)Z&E1)Z&EAaZQfH93g_OPe4ELIw^oa{m%d)Uoo5Xc^OaTx@%hn-vof$U)imq8$V z*v@4T$R6Iz4BCuo1hR)WaTx@%hc|K=1hR)Wl=))uh}8ms(+Fe_7jyeTAbYro$@r!v zkj?id4l@yB8hva7*_%Mt(m?hmkhL_By$NJ34PrqJiv9plfNkp-lLhsAX>g zT}#9DTn1fB!*%g^tR!l+EdMmRmWFG&{h(`U*vVzkwKVMDGU!?wwsRSDEe&LE0$oc3 z*_%Mu(r{JS7bz>Typ~7T(r_i0LD$ki_9oD^G?2XsbS(|rLS+$OEM#?W54x6yty~6O zO9R=PK-bbh_9oD^G?2XsbS({JZvtIQ1J#@OsjmOu=epMU4^Dmk|N0%R=_A(_&=t@X z&=t@Xcx@_ROe2tOASXEx$TpCZ90+6^ycMOTM$GEjQ0EZHHh9Y9Wvs=-h;a^qY=fK2 zAdqcvaTx@%4NfkDK(@ibWe~_V*trY>*@n$rtr5sJY^sQsid$qY2Jhz($Tn=`_JcsS zVMAFw?i1HM>jQvu2xJ?Ix&5GPX((bczH`#G|C`SsYpGxEO;}}+wbU>7Caf}&wd8vf^*08hLK>7>Wze({4DhKplhkWp39(XslSdpHgqlZ*K+$o*HXWe%b;ti-@#?jwbXCtGU!_B zRc|79mYDy|RXl(0plhjDy$N&c+@Drv(6!WGWrXDCs}s2&Tk{-6*HV8amqFK3e}z$Q zlp5mKg85PC+(Fk;e>s;y*HSM`N4QkBM9q&v`$5-IFH8rMLDy1$StJ;X$5-qpx5t&W zM%Pk*DUFfX3X3V5tMOQ#qKvzIlKv&@PUIF7A0@?cCD38a)ht+@| zfo%PoxC{c>`Zt!Al$6H;R{KF9TmJ^}IO%A-!YYG6wtfqDYzSoQy`hj;DlNS9)V$oY z^Nd1+LjNj#3bS?E8f+fL-zryN!ims);nA;D!mii(l<2xr^OTITz&qR!K$Xe>i-UPCi zId4*%x|TY! zH-WCDj_ggKYpEl96X;s%wndjd%+5r<%Yr=v`ue}c{XzGQE`9y~dLO6hfovVwn?N92NA@NV$kutoflx)j@|qNZY@H`}F=BNci$J!{&1DeC*15P0 z0@*qzmq8#~=ioBvTI%dv23`fqRsU>?8$XaU2-h^Z=`QAkBjlp2h z9|&3XCeXFi-e8FLM5ElQH-WCD_IfUZuBG-m?%2?^)LzT&2VG0;PA-G4rFI9GLDy2d zoy(wWsU>?8=vr#Y-UPaqTCz8RuBDdhO%T`rZ+8EyJL}fh|F7j}Nxzn^fUbb9fUbb9 zz{ODk;~WCnT5^&Dfov@~$$>z&c3ULmFAJ~e85EjhM<83fmCGQIt-UN>8Z@FSZYV8u z11195+Do|%0@+%!H-SL5mh4R+kgX+q69{B$$=(D4*;=wUfk3v_8!iinf>En$QUtQK zp4`QVRR)1y+9D?7o06_2-z9hU-mC zA#17OdJ|K~T57o7#FS($`QAj$jqM^iK?_sk;xcGqYMfjKEliDr%bm};`0ffS~i>}Mc_sV4gwlEUQs8Pzw2eBxG^a;ts@TA1n^{9%8@ zUuMg4fb)9CKRIR{jgAK#JM7=H zU$EEN@BcZC7WB*N3g`;x3g`;x3g`;_YF5CQLRwqBlNo{-Q%Gy8cW@b`wbk3X4AR28B8lNNcOb z9T!XnX>GOWP{hPaX1Jf+pI3G$kk(d<4h54zT3bzaD3I1xlN|~aG1X*;0!2(U*`YuY zQ%!a#P{dSw!x7QhvAi-x5mPNSNQuAH>S`86OtsV?L4CikRvRp-9LG#H_xjC}OIMx&5GssV-tN zz9}hU@*Rq5E+Rn8CCgXzpQ9QSzA52hRD|kJ_@)GhQ4y*=;hPc~Mn$OZgl|e<7!{F= zRFwM5)^ASurUZsj5o-NRdHsL0{jKKpf06ea-X8Ch-mtgW^Itu^o=uSS4uo$?09qBH8W6rI;b&EZ>Oc6V1fNwAs{P=b5_(oesP2Pr zO5j-)p_&iADPd<-MBE(_HmvTB@J$Iit0Lm&2qq%rtcqM#;*Z1vS0ieztE?SXdR|x(t(o z!m0?@WtbEaRzo>TSVe?BQ4u#65%@$! zTwFxh6BTiC5kXH>#KA>`JW&xl7ZLD8MK*Iq7VbnvHgOTbPE=$g7ZK`2MK*-vVZT_m z1wIS?APaP&BE{TZggH@>A|`U@q#!5xF2l=A!Z#_vNq#3UkzEGiO;m*HGN|kSuW#wz zqObp7n}Lyj6dogPfrdQdLE$84BN|fT}8Tqgb!J+-gB= z-=u)5DnhM??VA)%RYj=fuziz)sjA3zp|E(^U)16T%}JqDRfJj$+cznYs)|r+Vf!Y9 zQB@IYDQw@QAgU@tt%U8H6hc)+$S#8bswzTu83ZU%5wgo5Jc){sT?WBPRD|p@2u-3Q zWS2o;5*67N^##j~GQ9pTba5gqiHdCHB7%~r$Yt@0aEU*Ld&&KIWtTxn5*4|WiwH=f zB4n3AI1&{hy9|Pns0i6*5Q;=a$S#9GBq~C78H6EG5pUEVDG6CD@Zg&ighWL=!BVk! zo`tyZO$tGxB5p1s0EvpYxQOs0D&piKf{&<(gNq0~q9S%KBJhZcZ03qA?1+kN;v#~M zsK`bxBIJmQY=}f7M$qCB8oo&ZM^vPk+lz1`DpJHm?wk~CB;RFtiAm(H|KDQX|DW^! zANPj5MV@bXdOS~h!k%LHe|7h|KjDtJH@Lp(>T`Y46?JWN{-Lwq`6*}2xykV@$AIH0 z$6b!i_CK-@+Ml++zlGeUS@FG=YlL5R)71?9}FH%J|8NiEFkxd5hB2{FQ0lY{R z*<=7OQnf8o5s1Vsn+)JZs0#iD_dvK5O~7HTqp7pc0Gi+~rYBAX20MXJaq z19*`tvdI8mq>5}ZfETGEn+)JZs=U#7)CgLvx8R!uFH+^nHA}7Lzrl-Cxw!~Wf5!7ArIOCc%qT z6*GI0*Z()!54?8Q|HA+OdJl{ASFbCeE1)Z&E1)Z&EAXlc_$Gm;RuwTLlshLSPhIwz zRZPM+2|BfsY)pVot>hXL6QENoxyHl<=+sKCF)<-^>hg+Kl{bpp3k<7AZuusFr&dxc zRQo1?r&dx6RQo1?r&eCa9T@P`N@{s(-vkhoN@_Vt-vkhoN@_Jp-vkhoN@_7l-vkho zO0F?60mP(|YfMZ4F{$Jl6B9s8D!InQ1Q3%-t}!tI#H5mIOiTbVsoWOv2jYP!-j`6| z?uQ8=CY4*c2oRG>`P9y^)f$q%2_Pnw@}ZqX1c*r`*O-_9Vp7R9CMJNGRC0}p2_Pnw zTw`Jah)E^an3w=!Qt6FGqkhZA!~_tNN>4Bv4EjYs!~87t-3MY)>EJn-*?V9>z(g*UhVj<)JI zT>)JIU4e_b0=@|VtCbt0kx02EzMTNDTDgIX09dUoW`;Sw2>`2=MNH(*2?% z!kCa=wdjhakI&lvix2_wGiZLU9^@Jm60EAs??g((-J~%y5egQ{NU^FiUkk;9Mo=uM zWquaQNV2LjUyX!<@sMFA3h!qhW)_1L!9XBxm62*y?Pnnn^q2ZARD>}h*{aH9qk%{) zV)^w*d!jP)F@IFdC|ezy#3w3~5nqpZyu4LL>JybohblthV5wC`@)MOw$-M;NyHmK< z(x0fzT)133GSKST>Jt*6sLX62?yvA$o^Mj1s7x{#7i-Fuhy04V${Gm`rA{3Rm5GoCdWf-k$EftE&oDY|YN9W|@%^MP(+#W#N*r<+&p%ipos*{eENR zb2AFnT3Qs98TXg?<9>^Fj4>fGipu4u~^35n2;Pr zWqvCb6epWy-K0lRnJ>rUu?p*q1Su->CGk*`n0Q2^#n&T6ipqR360L~&<$GeT4&uLs zY9L99%6uVS7K?}1d=JUxjR|Q|ROa&~{t}~P&GR~+ktjuF&W3#P62s!>CwKk7=e4;0 zzuf*E`?$TzzUQJI;^;3b!m#=@a8V`*HZMpK2xMUuCw z%xGDxBqXkTRHE=$O8Qon87T{w24a?D&>&`p1ED}95W%U()psi!6H>UU{R{QBtIB*e77SGcEywN>x~j~gxWbMFEqfDEx~j}VpezvZS6H1p60E39R$PRJ;y$a4 z6e}t-Us6^QDX}~@Nmf)QBdS(n{q;z*qB3c5%~xvOpOI)qWm1t?xI~Q|XF=i>m6?tNMaRJM+>v@k zWzKOK$yZcnDk?gNVaxMC`W2O#6i=}Ci?he#dny5o%1rp9q6HGb_o_nYffOt%Gad*8 z4F8HpYZS^z!lE){pFtWHl_C2K60xWZ*=LZ7MPEz6_v?|`zFF+tFLEVsuh(< z$70bE%ll2nC0kJ$uFo(o-HOU^eTH!fS5$`UGmJ~QqB6-yMK~O^x}RZO(iN3Sge%0I z1|=3fgK=qBRAwepCMxZ>%1FGTG8e>Exo9|9Tw{+*y`nPbqvcVbI6n1`Sg_A9F8PYe zOpE7A7-CNr8R=J4=3Lw#i(1}4GyWWAro_n>vpzN{Sk!(d#n%&y!jTpJdL&^{nF(>{ zNG!18eYC*!^0+iCDl^VyBw|q+uFo(o6^qJneTH$#SX74VGmJ~eqB2~cVO&BMmHAR> z#JbO*um69-fsWo>S3p-lS3p-lS3p-lRlpdRB36w(#C%0u08cRnUGKigaY@$o@9jh{2pJ80`Se5yj zxYMG{@_vSKDOyzKtC3ht$YrbVk0dQBvlxkpPJ`w3m^3Xavml;ZCa!v{_9Ib?%5Z&# zaj9BVhU+togKIftBl`^CS`OLBJ_ERxLpHL{0IubbjqEdkYdK^i`wZY(4%x^)1Gtt$ zHnPtEuH}%8>@$FCIb%M$%0(|Tt+gX1o8ZUt>`NDHu;A0Qj#sb2Iu6=B|>uqBkeC#3H zXtXp|UTSqe_Bi<1L$;B4c}b+ya$XU9>>=B5C@McK?im;dAA86)6!D4sidRP}auv&e zJ>X*x*#^Z7VX1g*`>KzX8St@(Yy+`UA%06&MP9WZ@UaKkJ_ERxgEq3y0Iubr?Q6lH z=rdUMbilP7w0%_o`=F&29|zZR(6%UM|9zJCmyd&MIcQrD_pw{wYcUS4<)AGa4~SY@ z_O-yZ9JI}s#Ns7!%bx{sEeCBGVIag)^{jdz;93sa(qfLi+|uQbgKIfxOG#;Axqikt zxR!&qxoBx561KXRe;i!PLECJwRIZ$0_4R;jIcQ6Ywqt3a)WS`SgKIfxONeFfgMp~k zy$Rr24%%kqy)c0as|>i7gQCw63YA%Zf55dI6n%y`Q#Wue2SuNO%7AM*DEbUW%xAgI zz&N;;gSM$qh3E)c_T0d=929+q60tIj^OF1j z_3U&1fqTl`;rh2N)9w$t?{?qp-s1Wl*I&4vas8I-g!>uSdtEWtPS{|H`MVb1~{`b3O;^r0qaBb1<<$u_IllTY6(mv#VuG{^}%zNZ6?!Loj+bRC<&gBcP{NS z|Ak$hnIHaR@lv*}*Dk$M{_n5KZ|~lE<%+;nyYqn^D*{(%mJe>*cJcR1$Fy`vR~M@? zT(j~Yigs5oSM=%?|8P}tz7E@O6#uYPpQUfZwfV2^?qIGyJFbvHQJ>t$m11y%S7Tvrp_b=kFEPoF!Ti!5N;vGf#gUEjq zi@XopE|q7>@?q>K-u;Eno17vgzH`fecTHv_cR=~j?w&8(?-s{#^VSuIA+l>6#5m#?$cE?+NySoR&eJ9D+VX;W@L z%l~qP`o1g%0`eOte?;Z~-SU3h8{nIN#kS2NXTEJ*QIx65eW$lxA`eLI=<@sli`UpD z|9-hJSL}X&&-L@-$8qC|&9BJ+bZz~O6@R}o|1w+OwBqk~{a$6hDHSjM z!}4zJmz)1kB>q8GM5M&W<-5=2PF+zbo9+EYHMT9^-txsQpWCu;%bUIbpZ8nd&wI~! zpYoP?w|TxVuKiDWKIysJbD8^pxHIk(?t1rg?t9$ZUH{_xU01KT>VJppYUe*Yf5+MF z{Iv5C@kD?d9skSm4abP%MaN#p_4Xgx|G++EKV-kxey#nDoBww6?B=%3k8i$f^OjBD z*_7Dy%BIIQMK^gi{_l5ZS-7~i;c!}m7KZ#cQ(6B~AKxU~51i_^tlDXuGi zu=w`kqM|=8`m#7!{c-VBU{~^k8*N3UR}?++z`OSEdEb3|_m{*UDBtf3i2qk!^4@#J z-}#K(A9p1mEVyZSzt6uXe$RVzn=buvSMmb|H#PSAj6LP?vfQRif83RPe{R$LD-Xcf zABgO`fA2e%HqHHUSMq)4rVo@>+_V3I`|m9iFS$Pu-dDbFPj1ttKkiEIGdG1VOKck2 zd%ySs<(HNF2x^d#RaHnm+*wBPTK?>5sdT_ph~SL~OeJEm`{GuH@deHVv15uzdMd zm;SgbdEZ)_hQy}Jue$WdUCDdb+B7K6iRD*a`s1$TyVlxt_386YbJG=dE^zwXV{W># zSgTK;J-JOkLYzMDFgJw*D0uo*n47LRfC8saxw$F4YP8VlQzkYQr_V=nr;jIDy8OR$ zr^~KniTP41_FCW^iLbTk>T~4owKiRSj_h7*)79t5+s#ek%Z}~$tv*NIR&djTZ!vEz zxM{S|Tg+R`O;;9c^*M4^ZqtW}b0lVN3SU;ib0lhRy5ax|oFfr)Q+U-#p>rfGHWlZ{ z!}+(EkQs%&h~lk&iwPFoRJ`e~ev1jLwdv~9$G_I5t4|+etxZ>-KEAa!U48o8X>Pir zcm;k#-BEB;f1%Uoc5_pxYr)@8x8*i{h&X+2H8+K0EqMCeVs5(P01BKwZ#FlDR}B|B zeRhdW#p&}<{w?O_<^P?3i@C{ssTF%IaE{!#)~2h^ksH?9boDuM{aTx@K1Z%wYtz-| z$hB*2y8749PIFTzrufFM9>wf1H(gn*)o(G|bDMscI7hBAH(hZ61x7Jfo13mUfCA^p zRpzGfs-Z&X$dzJKagKaAe~w(S{J-<($mQlst=MaUb7b3Eo31`bwyw45>T~3>wKiRS zj$FFdrmN49-&kwY)#u2Y%uS(~1>Z;BXl}Z)SgX&GH{>?`5OI!dF*k(+DEL0&H8)*x z00qtwkGUzlYOv5b;uf2VbL2z$Uqh~f(NLjZLr!zk6$ez{^l_}U>FU$RzSgFzPoK?e zZMypO*|gTCt52VeYi+vv^x0r;x}wgj-eTnS|DK`&+m^3y>E80xmbwZGNAar2*T{>tWqoA25D#!cVdG_$F3(}y?Rv8ia|w>J)Ld~xIb z8*kX~9~-{8VPM148{W3TRs0vllMsZfZ|DJcfWB&)_<%~~^ZI-T)mM)*-&pr3(V;_I&@u#2L z^Z275yCuDJhFr50S?dfbfApF6KKaDQpL=t9=^VMLz{ch|A~wGF@!x#zmh{p|Qs{-v zlcfB`$CqDt=`<+lZ`PC|xYitw7P?mE{iX_ebM<-krNPgK|Il>1US?D3~siIpfti zF@}hUT<-F3WlkQ~t?5f-Y{#o(;@65%asR&D?kWx(cy4JYx1?=y>uU;Z?Gsz)b|SZ4 z`evm*x5mas?B4Qs5SYX3gb&v$qnCJ)UdLa{{8--xLq!HgkLP|g z?nu2L6E_w}1Vm!_d%B#+?c$KRixoe3VzKb|Kdp9g(A>q!gdq}Y7fT7b ziEza#@^xA=H3I(KJH6>T5kB} zrM<)Zn>b0#_KS}$DS{VnyW zwO)Aj`&;Uha@!kUeGuZhdyV(E)F))%`T~K%?{BFm<@T$-*()x$mfqh|AD0^jit1MW zOj^Ca-I97j=B{~lPP|dAe(MRPezV|C{QCpJ_`CKl|EQ_oS?_xK@!YSBTT_qA+>Qb} zDe!K1Q|e=K>&sSe{i^q&VCpfsq4DYs#o+|R;Vl1DlFd8OJ4n( zSG?oNx3FO9(Sk8C3S93u!7ZsrWUN4e3%*_Nmm6R8>aQrYfA!n-ovDw=ZEr5BUHKgs z+ph7x7fwAa6QR|KfM48L|LSjF`KLa*{9E~s)I&0O`<$*Ts}RLu817@pVK{o214cx- zhC@!r0mWlc*Y#LMJn%wU#1q|BSJ!pbUDvPc@tv-|@9r796%h|q)J0SfPjnSj1X&hw zS@^wg#FJT>?-M;;`~C07WdBiA4NpWxzWHWkJQ1Iaaue_rDY^M9*?qftcsgJyu~hf% zX5&}d_H3Z;d((oOjNf3Dn=X?*lh&OC&Dt#sZf5?ZK)L=?pMg2^R)6}8mtOI@ zSG)*!qZ1e0RQ(n%E5C>LjI-@`CS~<&;{~0%mz&77`MXWS;L%-lqzcUo$YeDs2w+CPMgWG4RPZu7Diyh3l1M=iMN{R6lu!F!II z;9ngO2ktp;hCfts=$`X5jdG~sz&+<2)gBRO#8UU1v$eosfdWh1bIwwI;Ot};q4b`! zX5maPd~3c3lBCZM7>`=ms=@=hj8FzQp&{!TDqbBB(~$M31zic?ie+@pcdvB|Zkga9 zTd{}(ccG07Zlz#-K)t)}e$#?mHP~Q_Eq5Q@xZsu$=xbgAE|7m=#G1Qo7%rzDpUvAvg_)g>djXN5@X#A#ePyJ8z zKh}R&e`WnY>OZUBUjMuL_v$y-zgGWJ{qyyi`dGbL|4jW~g*Nz5{ay99)~~9+w0>p% zxibH7N&TYw)9Po`pHe@uetiAt`kMN|_5JEksMqVIdRO$YYw}VP0>!@<5hx;1M4*U3 z5rHBCMFffn6cH#QP(+}JKpKIrqki-T@qBB46wB-5Zts-W#%-s|YyGxvd5wN}yu8+a z@R#yh{lOFDwetOw<+Xh4%jLCn>%Q{Z_r0z1y5g2A<+b;g!{xQ}-!GQej(_iwr&#X! z?gn}N?RQR)*FSvc`SNip;>Lv2}-(TKKUjKZjPihNB-qEU${`-&n`YqUMCjicsu46w#e&D^9*_Y zX;Y4(<0pe_o+I#|9)da&O*mc zllp(ZKKVj<{o0hYzvHV@+Rm>`%S*?N)0^b=%hNBD*BfS5$?KP9Br+Y>&%8xmzc{O9 zzcBked0m{-<@|-Yr^xH)=UyqVyXFs)*PZj*y=vQNhg zJHFRZovYqitJk*FUR3))Ws`9He_J}M^vudk<>%E}^@QpROD`#XsI*Y}P5JTVr<7l| z;!P{wQ~q%I3+1~@`}f_~_m#eX?%Ue;suh3e+i%6kdbajlyyDBfe_CwQD- zzx95r=dXJHzGqj@fAl`C>&Lx^bp5`2-|o}9U)lY!?k{)$p=Uq&`bRsD>U>h?(>kBs z`OeO<&L4HHkk$X^cD=i60?#E}(YQ?JA zwO`eCR^QjNwd==SKa6*{#iUi8<1#06)`c<^?2&Te#Qp5zSr-aY?%u{b+!|F#>XAh! zb#J2`y7tu}Qa}G0?a*~I{S1m}hc3Fg&u(2V-r?5msOl{V0j^d1wZ3?VTMH!V#)K<( zQqPs|a0`qiO{bBa)GbTKJN&X`=R`gX>5`W_Hn+MT?{G_@tE@C#3UyLX*6(oZt5&+c zKjHPA)Xj&+JKWlBNa`n8oz%UJcesUND;2W7-_P4Rse2pmaEs0%sh}+x(dCSP#A1hA#tggI$hW?h7@* zQ$(#xA=;s<6B6f@ea45M^ZT!zY3<(q^EW3U?i1O z#OdYM) zo16XF8&1yV3CU-iO}9)UXWOP*Am80eOi0Ry?bdoo8jQPJP6|mm?ry<~q>_1@BW@)u zB;_1&D{Lf{v&s4FmIJL+Zn1%Uc1w&_+8-P_xYbLN1}@|3``nZ2GC~ah#XC00**$$# z=WzaPO58a@8<&!Dgf=ZDNDU3&v7f>Jq~9L(OOq;!e~dV*59h0=*1=w3=n=`_$4l%@~fx!b)T z84q*@rE*yIwiFL^cqv&R&XFD0EG4BJ+3`0aX{djWc3dq|$&m@<$d0!ppE0_8bEvBR z^sxqa*e+e-9ajaVp&Z%aNM5o?BDFaZbzao*7af0=S(VOLt@z}MD_5Me;=tbfyC2{6 zo30;reXZ*gU9agnt84$x`#QhU^YfmWp1iPwCyOwx;^0>P?-0Au|x4tG==NG}%qy z;PM0Io8)4wrrOP7~UE3NGNUElS6AL)B}-zk0jthjr{?JI8T zy1Hvy*O8qMcYe3?bMmynMICpm?UUQn{4?SKbUicqPC`aI@c?>I{$HG&NBatmRIX&( zh4aEVYF>v7ucltZ${5Ah*Jg}FqYAWBL^vRxVo;QNhV4ff3rPKLZ<(lMUIWQzu z|89>Z9ylN*Ra4Fv+Wt$ll`ph`)j_Fndvu`jGq{k%1Dhn<8@wY5+fL)qrB9dqQLMg9#|WchP>H89F(3Ax?LS9Qi;%X5}`H8 zXGG|TU{#Vs9HGOPl5&I&TS{uXqIlrYpj3j%x2r>zlJf29;Gi^cyQ-Yq(X(#gT)AQe z)9jp+ODXrj0cN7yeiZIoI(Dracv@I3m$SbaI<lU@YOj~SyN61Ot+js!;gn6lU(l)K)0n9$K)aFz?fH}>)RK~XG`dtHDM#Te| zDK*kSKE(r=Ae+y}HSO56R(}_W2htmJ?%I;)41Cw`r0#7z@O*#bO|5Ci=A`Z}5Dn<$ zo}Bpkq+`>0LHF5pY|(&DDeC7W5ilERs+KVUCjutaSjvfjX*wefCITk^SjvfjDMcfd zwsIn1?v16K2$<1hsqI?g0n8H`X&@0~*z;XC?4q6%V}Mp7i1d3QX&@0q`h$>Eh6^pk z-MZKFrfSzj5dvy^)ToiGkcZ6ZViI@c!QnoW8Hou+f2 z(IcFS&q&i)yBbb|Gsm~E7 z#qa?$eny(!HJsF?OH_Jp$Fn+a>!=3w4Fik=_!jP<;;{Jru(`D3!y^)&**fT>QE((O;w>0PE*aRtIDsYG~tU)(ZGEvZmKWlZwcI#;wC)&Vm@LL z2I>Qv@bE?&7!|}#Oii$qy0#{!CX6&qTX!B@+Qv;xO|X=@wk8}XOTDjkwfZTxCLE}d zhAcu84wR+#_8B+fK#erL#Dz$5`RfCgr9Qzr=|U5qrC zE;@g}(qR7T)Pm&iBD&$G&L6nXz8h}h*8au(VF&YBZ|(A}Mw;FyG?+j*ntInKX=|F+ zNxg+=VnFc4q=7mhkOqD+xpwugub-1^7q@oPieRGP*3ME+6x`a4G?*y3wX>A3D%{#x zN&|)_ZtX1Ps|vSvBb5knrsCFaq`^$Zt(}rOkg0lWm$Pf6!9>6sq>)N`(a5o>0|GhG zUq})`@A~dDG8MOWQ&qaAlkH4!Yd6whj^NhLQqB?F+Kn`rBbeZ3Ddz|#xQ#S0jTJXB z<;hZ;Bf^5pe%r-g5rO3*5D&cCU(CDg4FD?*?y`cXc$JsZ%oKMK16Ks4p_|#jD}&N> z**9~q7`R-d(k1NlT|_+a24B>)U9NMwcn4k|l!h+ef!8f1rHgmq%Ai!H^{9g%c8Vb26Xx z#$eTfp@%*&a86gVqvz>8tGe&){$lqB#G`NSt_VlpY<#!zuZ`C=&TSlAzel+HtK|0p zRz$Z(gV9yd+45@uzpm}9y{&d`?eWz+sw35Fs~1<}%A=L+t#$*PI_1dn}yY}n+L+1^hACdWllRE1izwG#B&t)CQ%LQ~;XV?4eb(vX3%WQ4; zrjCy8&q#@tUGKLAGRqEbKb4~vFVnysz{<=-V6t)6(Tjhf;zOJ`x2K9f3vRx(wL!|- z#pkJfb)fFnC713a_}r!1(V9AxL-bqIEk0+did$Emh}|wUi_cc=DsDukPxD)uty#QO zrTYY=tx>b?EpyD`vs8E(3&ZE5fAN{BU+d0aCT_XSs9PKG=!Rx%7BA`TUvzzJvCrdr z8qFj{Zi{J~6zBK^HAUpc)Uu$uHPM>Ivs=Ral74H(TKC~O zcJV9~9?_*W=7p`BQa1WWF1nSDm0W;(7PruG04sw%i<=KQ#EEmkSfXcfb0Vt)bq9JD zHz^WoN2q7fX%XqNI39tX#jl~THqf)^Y>M&=dio@CGcI13&kdVIZocIRS7TndR1&#amz7+AlgLfF9Kgyz60Kcy z(=Mw6;y_lod6!Vdp{#H-FQJM9S>dN%xDkP@aBDGv08>`Dm6*f0&ZV-#&DpH&dT%}} zWWPZ-dUE&aR#s?75HI?<8&@QE4yoBkF1op!l>upM1=DZVw&*dSfD`50-$5oVa}RGH#Z#!b!I-n?Yy?AGt<%)y(ga=vOl5Od2LartYu`#!obdJ zi*CtbbwJEJuPwSYhd{-lo!1uKs>4BCad79gMYr&7i~26kBG8=L5AI zeVurp-R``$ctG&$q}c9vUR&JXpONeGr!Ktn+Tv;zAJoO-(9Ua%`>A@ZRm%u<$(`30 zS80(WZ4ueRZ;74Pj$PbWOB`WKoN(C^dx0LgxKazOv<2jV&CbThF6z=FS1pYR@4C5V zQP(C>NoC+4O_w7rp6m-^kjn>UW{r~okuXj{B%ik{#mfu>wxV%+%@voGATAC`oXGM4KZM|c? z@9ce6@6kPv_T19*Z#}Q+IlX7U?q75_yI$)y0J-^i7_h{cOeV^;Q zs_%T+2jIRHUtRGpD=uHLx$%R>VB>EZPj4Jn|80G$es%pBLJ!;G+Sc6(diw9DO=H`rs6uiGTMbf0O5zp_jBnXkFxl~=CWTMxsaU zayQ`v0@}b3cbB^Xhbrc=^DcJ_4prO&g_4=Xc$d5VuHshEO=it5cef3k6?5x2a+kZk zt_;*^?neE)-2HT|Q)bSe>@&NRKiat9imdN?Oa8K!oZ8*a??*4V+wUP=Z??sP^BVC2 z?!7ACeLr*L0`9#mHAlN<0ry^3=3Q9-0`9%0v2yQSDlA7WxO?vb?)Y*I4mq&}H=nsW zAm(gZaEnHviUVo7pvy)wYePqvS&qYe@UaWJq$DFn)`l;xV-|GHNhW)_K=A5av*6aG z_6g|o({DcjCZ;vfsnM-1^R4=cVb20`Err94qKlQ1ud#78bWXx_Zw z26>xoS^3W04}SX>+<;H?a_$r!7R3vOsf!w8wL z-`z-fS88enK4k)zxj)BP$PAzAG#LZ?0TaIimdM^0&*MDZiNtc-jn7^ha&D5Inq?ibp{~M8t@xRnh1jO@K2aAd~rDx6N z-_nxi8kBLTm?M~f^HS25H^m&m{8dXyTh4}m?M~f<5E&PM-b1yVJT_L zk$O%eo_~Eynu~MB$oseP{OelMe6U)xNJyXgE4}nt%csx$Yg^Jx148LD|C*LG*8rYJ zntydmnyEFnW|ySTt3)d4^DN9G&0m4fm`9p_Wvi;(w+3?L@};DlBd=IW$~p4#rKFrA zf4!8HbL3?$X(mE43&A<^(x5a%_RqhhCCvwmbL7Qd`pherQ6U|>NQpt%+e2&EP+gn9j-=b63t)+^ji+Ki$`W#XJzoB$>N4kUG8M4p* z;f*KM@2W4>|3Q9@@8tS1@_TzfkSG1GjV_7SWuNqSI|cltdUN&DvTxt{)k7-}R=!#J zRON$}7gtWI>{b3%d1v_pP1UQd4PK1Qc@nEUa*vu2dL*SCA9<8X#PBr>PRjzy5}xclt-aY z^U{lRV_V&+ytSO=-^TOjEG2D`*?#RToN0$X|3M*xAFX$LFtKE zUdW?E(fn4CN<=R9cv?JvMzE;RNv+j4|2CdKeJN>c>CLag#q*~HrMZPSzXli2pSqN^ zwe030#d!XdpfvY1fq$?do`0&BZqJ`Rc?`U@V(s6?^G{hy+9EH`HttG6qE||+9Kxt+jxFUP?}rg_RHPz{E0zn4#4)@X*_?z zQqtDawnydT`OP7z_@4}X@88Dro0gKcR+kIK2iN~!Q$4G?f3;Tmx%^h(-^%X>ZmLwu zKP^vT{r|AipNjSWJ$;y09DfmkA_7GOiU{nn5s2p<*%}&=@L=8{ts!ZPP)!E&4rUEW zc`&aOs~fXnFz+B$TU0GW3sOx6^Nvzo)%A24&gEt)7)Y3RWU8087GlE7J&r~V)oND@ zqj?2TrR`5omU|pxO5c)uU?*8Ebbu*IWlLQK5*%I{Xi#7>#?hrADNn|@Cxt>%o{V{% z9Hy*6Qk*l-tt3FgUQ0=NGN!SVlqX~Ah;uR-6D?JgCu3?}dQoo3-!Jew+xhBJQfueq z`ASeKtA{Nl-oK6K%R#9azScw0i9IO=r7{`A_M|T;l?e@=1X!_@lo))IVCky#BoU z@!08K`TrM3Cq;Y7FZk`OeW3QD+Ll_qdZ+wm-}|aBtez0?|L<}9zxw}gmHth>p!h2y zP(+}JKoNl=0!0M&^a#XrAe(8h!)9|1WHU?2Y|epfW+|D?IgrgPrIr6Vkj*S5vpEN{ znWbbl=ag*LF&xb19Pni>N@jBo`11MrL8bik1sek! z;EwV|Wz&toECRTrbK5YR;Eq(foY_?FNFu_uve{H5N!osHVm84YnQxJ6kIklXM_LpQ zB+LOWqHhiK`hbgA%Dq0|B9?NmuW(W5uz8Ac4%`vf%Dq0gBbIWnuiTM~i2vz~Ilx6+ zlzV-^MNi9}UCGQquMfD0rMB1i>;LB^{(pO8ZT*q@E%5)R)mKKpi>{BxBftLNTf4nB z>Yo2^`Trfeef~f7|E2Tx^dV1i{6z$c2ow=0B2Yx&u^EAQ4xn;=*dauEz(FdgECaE; zR1rzyQ|FXnCTYJ=uk0X!H|J{=LO0+bfj1keEO@bl1m4V2c96iEjZ~Ztp{sMin_0>Z z5_q$b3eL$(Q^1?g$qf?wW#?gbkcu};Tv^Hv66CXy3ari!66CXyiaVfn=sA$jEM*4? z^4Ulw0_-3`KC_e^B*^EyRJ|TMNF|>sSSn=)2`D;WYrm`z(>nAVplFt|gH$M5jKevJ zg9Q0(ib_Oy9UA2G*=;yTC7BcFU?YRkN}xj%JYT*nOMpW5+D;x*+BwiIy;#+1jxii*+Bwi zIxBy6WqOI{4FNK-)H=v`4j_|}3J<{Zh6*yti8s>VydfATBMm(;F0CD#?*Hfb|H^%puVncD*8YE~|9@Z^+Aqd}9VO6eBMm*?JO{Lz zrR*qyRvW2+#q217Rcq6ysTiq`9c{BSfOi0%S7Z zBAG{Ka~2>IOUZ1`0%S7M(DoFw0GU`yW^)!GlaU4(7F5GEyOYXdZDEj1x<#*PjLBWTbL0p(46VB&mM7@AcE?|8H$H8`m`a`hUXzpC~`-OBGn4<;qz=(JW;L2`D-*)h+OdM41H?eM;`^1$RW4 zRVZ5G%u;rc;H8Z;_siPY5n&d*G)V&v61+4^Y2I)ajFXXyGiL`0#)+luAi+2psdSI* zAi+4XlpQ1(CnJ?5Yj%)eoLI^ZQW+=d<4(c6;VeKVQ&b|tT{}Rgr?%0x17uR^a$P$> zCa#scb_JQF?N3d*cF;=ZTV(3McJ1*jXeA@v64*&)7PJyIDA4PJR$?jl`k<9q%Dp~l zC6?M=KVARN`v2wm|JLvS<^BKG%6{cPxc&ds|8FRlNmLHYyy(zqHHz+Nk1h&-jog8*lYrlW+|IZK+;AU zdLm+0A!#u|Mk=!mY&OA98>u)(Hk;t5pOTnO@YANKd<&aR@Y5`1vk89MNM)&t%_jJ1 zma^FdKW(I9EZA&P11nb1X|5fHk&}JjWoDi z3ACD}Y&L;b8>z&V&8DK&pcwaF>EI%W)o<&DJr})n@ynA zPj16(0p*W;_eV$i4O(iWTbLMTOS(DD&r&( zd2%wv2#|>y6fm0rnOMqZ6Ce{y*=z!2VyQKo@hm_lmU6ETkcp+->jPwZa?jPvuiB3HC8vvPD%KZjFCYDmaF{2=pTwo;Seq#oV6HBSzm;vKNQktal{{Ol5`TrgD ztLxk9M@A33=l{X~*Y2);q4we0%W6-lJ-(*v|6i+q!mR&$|NrIk$I7oPpAP>&QF?dj zx&O~2g`!{)fg%D$1d0e05hxG9MY9Yu;HOz?XBpxd<)RvZI^r3B}X{}NSdYAQN}Y0NlQMfG;@kJ zUgjO9bM7#kGXR^oRx+D20Gm#1BS!!>sq~_Awr#)c^iwa|F5e#b+4vcNO-6dcW&E@8 zGXR@TOmYNZlPMaQb%r^!+sf$!9O{HN(g!${k;;yro40S> zezwbB|5p9~hSCc=8m;I5H#QEhKUBZD{^|M~>*r_o|35c6INB@fsNGs?)~=~-udS^< zQoW^mL-nK8%d4kVS5|&kxuY^(c~|8*mHtX^`GN9H<(=gZlwVZdQm&WoEX|ePCtp+i z6%i;RP(+}JKoNl=0((RR;u!$fIv8n1FG6c z<%jM#M?h5@sgU+|RW+JXs#*?nv(Jfm2I#bDdoU4zPMdEDni!zdM!Gqa2#QWiCYlBW z69H5;OF0pgs@B6y5&`J6X^`x2z)l6|w2_LfbBU2Nx{6K*+s-)xs(Mo!IRdI$rOV|A zsA^Md!05&^psG!+ftB}YMyYBE-X@OjW@g0jR`MzH0zfGRG3k5r9f8 zwK)>aD5&Jx?s8%Y{(tH9|Iu3O`TyOm{};diw?~Zbii0d7P(+}JKoNl=0{@E$#4~`P z&4@*eHjh66L7O3yxHk4EfS^sS!SN>`=nZX*KLJ4-X>c(P5VVoX?Ml%XQ%Rp>{ z_pQ+kNaqcSSq15=Rb@uKax7cUJpF7;MYy-|3`l1ql?bs%0qJa{5_cYdf^;^=5*&Ym zbY`g?f5tN)olOIzt?W^hbe3^HOF2gXK^v)9Ud|Cf(A-w`D1e}kZzD$lK^ti>M*u+^ zX>hIs5VT4&IUtWG^IQiY=;M?00R(M|%8BOm0R(NN!Sn$HZKT2U0R*km-0uVMg6%XQ zXqMXaiKZ2TmaFD?%ymqIbT$nNOnSxBpplGJTpH!bG-xDl5aq};Xr%S_FgKjA{lW{* z@=LAmZ9EMc$w)&vG7TEZNJBX?tu&HcB`R&@h)l0?j!Y}4B*9yc9GM1xK4Ml#Y+j!c6_Qt5Iz0vd^>Hb>%V&`72Ma#+;GOoK*ZDRnW^pplF;Gz~Hh z8j0J==>r<6-$o#iKA@3|G?+f1k&HBuKI;EBmM(Ac|7SE-)m!`jCBOgosp$2QtpC>@ zsNE#L|Mvm6{(nYoW362MNp-UN>FOJ+=T{G{JXrZ=<@1#fR$g2=sj^r3S8o0Pn)3GY z+R`JXTS_}hAC)gE{)z|`5hx;1M4*U35rI7`0`WA^XC0Tc#;W=Qf#heV6@8YmYJW0T zRlZq(WU_*J3I|4nx%HE8ciz|t%sTT z8KBSkw##Uq=S8N0KIf&f?RCJ<0Da~L@qiTQ^KoqqNP#}9G!wkwfE4I6*J|fQ;%T7I zrq9N0m5m+jlO@r#5`QhL}to(2(=mr4WH(*t4CAcFEzX#j6h zF%2RpFV#&c>4C6mC4x8tayIFKuxY?TrdHY0gdPZ+R#?cLq7$FF?bM6nX%IpAqS|)a zq+%LG(9yQX2>5>xK`LFYyHz4c4%0}N@c)}i&r|<@V`IAU*~V3kzivFW@r3$a^~L%> z)L&XZxxRPw>*({*2cs89Cq?Us|KB0}|8>>pRgbUsIsgBu%Ilr~UsqXOzPEg1`QzpH zmM<%BESF0^DNUBHldmfNiU<@DC?Zfqpol;bfyZ(L;%Sh`W*j09m|DLdPlH6xOLf3W zJpVLEe*zQ2e?P2xobIK^AzrJ zrvx@n2_B9}XfMKPg?mK0)_zOC=7IZB>2fv?+>eolX!mJwKSnCnpL=3(KSnC)!#y#$ zA0w51hbP>?{TQjtMDe67xF42sPYmuyrMa^gfK0&su+;X%@ie#}(*U_^FhBtAhou%E zh^CeMk@Q*XJLPy9a1S?#dt$&nanchj+#^-R8(dEuO)J5ppMB38PXp75Z4S{cFS`D} zx%Bqd`u|$D{{NHK^ZyzDe@S#^v^uKR{=4?u+81m8So`bRQ)^GC-c?xEtz1%BSLrC4Ipb)TKXi>H*{6%TPF4eDt1 zZVF(pk;(!r*}5r!y+*n|VC$v;_8Mu()=dHIWhvRZDS*8!C0jQIu-8cCJdmxM0@%w^ zTD_Z6u-C=e+qx;xyQZjEQd+&60=>J&+7GsMQ=oTMx{R%x0=>(%5-c$VpvKfHUX5(s zlma!9K1LeaFk=d=jgf{}n<=n1EG1hv1=hw$LyyN#fwfWTGPZ6CtPM-8t&66>+N|+5 zE}Bx-Mo#=1KcN;)DNy4+yIHe%3e*f&O$KdBsTnDH1Pt1gqA~8XpDLRI|8hkB>`T97 zr^@0f@GnLh+M#nw`4>5*MjH6h$#@EA3`^}SS~R6-jJ7@LQ^CKOqS7GlQ^CLFrR$|L z;XW1oOI|AUQlL*&{)G=yr~&R%6^)U$AD;B7%D=eJ9+sE_$VFOViVBIseJc1DmFCiyr^=?3f8ko?w>W63Y)a7>mI{!-eJZFK(^iq%KGpO8 z*Jb>F{gDj+e|)_!x+5Bo-W5G3>W_MBw+sKj)9n8@>DK?xU()|yQ9h%*s&tQE|KHOG zJH_!A5hx;1M4*U35rHBCtq8t9gyqzMtGBQ)?a^6nqU6zJ62$)i^SK5A<_j2(R=w0(IG61D@xhc@QMjF~XU<&lE zk%rdgra0LQRhbFd95ncBgwhtWcq4~rJ5EAheP#GhYvul5tA(~QDM!&_+k400; z!?@4R%f(ZGUQAU&Ojryeo&xm3QucO$UW`->8+$uIFD&KxGKF5`dSEGgJLO^IFb_$* zokB0}Gv>>bY;m74U#9qqRDDQ3_#xVTO34>iwWJ0QC}Fk)|~$gT_(4@$h9a=Gp^ydB`%gYpB^;F2ETTO$=iX1!fJ1^CuT zgG+jVZ}U>I7YxQv0lv*k^>-E65dywtDLX>Iw?--he|Cg`Z&}KY5b&*$%JMrqLWOVT zlpL5iLJ+nGf|;KJVS8Zy6a`oNK-eCbtoA8kE1tp>m7Vw45h{GkQkhdCFn$VLF4Y=v zgn(jTm`QSk zli+0zSl$s%Dla2#SLrg2a8gkkmde8t))B^&O4+bfE;u46CIR4>21rhjS)2rbLsACg zCjsCXsn|LqC?)~mu$0W=Bmf+hE;9i)2>^$sWELkCz>yPufbW#!Nl-SXL9#2L?TO<_ zrEECPp+}S^0pM_hsFR*l07n|MKRW42rEJ`1-$_pbrP)89Gcv12+{GkN8Y2}x#&*)t zq@pzXEq($no&+yrib`S-TrsJQNDDo@A} zT;ciumnQ4~>i@I*|LOYwgX#1C>i?Dh|5a(iH2><`b z%2zA@Qh9ad%*y6UwfwX4bnf~8PnZ6o^wQ*>U;MX-KoNl=0!0Lh2ow=`Y)2rTRQOiL zfB7MaE{2hV$#X+ zO@ih%wTizX$2SR@*GNOm{3K{zBMm(YJqenZrR?~W=HJ4ywpm|Nv5LYn?ns-0zOn41&QfXdkyGoaHd*c)yT+d5@$uz zSZwPQu+eV;S23v+jr;7mibHf`>6hLk}BGf``dV^|>UP zDw_lklb7nEJ@=`~!$^bnP5M+oFZ(8aDxjBrZA2N2p9J)>FQ&>S6?%~fo1zjH?l{52 z7-?v#Y!W<-k&4?Tcw$m{7;b<>jHk*Jl?h6@;{-)x8X&duR2e85mhx1YQZ(*7pyLE8 zV~Ps@&r@YUWmej2KhSY1DkF!f(%pBQ>i;wQ|Gl?ynXLaGUVo_d{J;4BZ$^Iq|C6G< zYQGZx{{yub)wa~?)kmtg$ojwM|C9ay{Qm!!i2q+5@c+gBe~;~9UU76q1d0e05hx;1 zM4+Q1o>WAa$04B&swS1*WvPrJc^wX5uNmFQke&@2z+NK_J;^)?u-8a~h7DjZOWCji z>{aPEm0>|L1{Hh{g{AU13Y_R6sKiHTuT zde?o1VFRN3#N2>XSp{B)Q$$x1AuknE6EJK_@9MWC>u^AHO;NFhybh;`t}BXlIB>Y8 zsLcNGIvhCMymY+`*$I1?1c#fK_KTFg9QYTOvX@i-McTek;^hFj?2~voKrZ{_f-S3m z0WSy0WuL^$DdZx-H$~;rVlM~&#YpAYcoGc!i;;@$V=o8(#Ym-A_Hy7~Sjt`w{0mFj z%YlDkDSJ8PU)*_smjmQtii%@oF9*ow3AS4ZcsYe!gqRJ8FKbOB<{z7@Q{K@hM%F6%O-S7Y1Q2hR1F(@n|P(+}JKoNl=0()Qt z;t9aEW?UkpPP-TvPXM+xQW&iCX}d^2JH=RH=)?9`|KZbo=`T{eRdByM-u>G z_lAL+PyklGYVZ8WPmY}o+yvNIBNa4(4BQ0RSR<7KAOkm{Y;33jY~Ut<&2p_|;3gEC z4c1BqZURIt*GdL%LWx=zOmE;OfX#AIGH?^XSsrJN1{=5u#aX27D$N);`7y4|+qZ5% z+gSkrHl9$@B`76seF6{+)yf8L0uT&K$-qqjf-zFr`J4cU2|zG;sm?(Ww>|*~hNWcS zCIG>xbU6bD2!^F>;1q(96aBcvz=3qhH%KnXfPqueg-=O{Tb}>~!ws?qE}j4cvzHv^ zSr?vm-esqq`i!lYNdu5RXI>%Q#o3~!Nbz3|E(uJiy5uDV$jVD057^&=b;z<`Lb#J2y zC0*QMI#VA{D9*wWlc{9?8!N7;-#Bstq>K3$iHJ`GCv|V*2_;>m)Q7nP zk7%t)KLS1`tu>YUe#A-LTlN3zOD{?I|Lu*u|6dvXF1kMYNc8gPlxQE>|L+0W|L>Ev zD{JS}4y@i^{aW=C)z?(ds_tL8ukv%_|36cHQ~84OVWmHnzE%3S(ud?LioYTPMFffn z6cH#QP()zQiaR5_38riKZZzfWNjw2U z*L+L5nVpk5dlFA5p-Z)@ec_=f;N7&=-3&zm@3NGKqJVc(sUM@I8y>i}x}j)1q3~|D ztzMe0H#sRrsmk@TRJO?DQ7Vw%v;pa1@hDZ1U#Yd;#wZmuu#w8*Gusu=z^Qb}QEEH^ z8rVo>L5tHzXEj6WvO42%;pHF93xFFt&_sZfXXq_ppyZW6Sa{epmJEsIRYvtFAZB-P&uhI zxu60$qEwFLM3m%+qBr_E$r121X;o>L~m-4vSk0OpggRnjStBZ~P*PSldy5LlkHsLzRXYRsKI+=jsN7^(a~EvJvNJluA< z7CC(s^I>T)eLw)228h(AkNW@POYiGw+}pUZ@$rV=|L^d|6Y6)R`~U5oKL3AGX8*q{ zYM0eE*2>j~syA0ZU43Kq{OX~V2W9`iPgP!DIk$3f`GNAU$~)8b|2s=_@+HMz5rHBC zMFffn6cH#QP(;8+Af8YhnTI$s8sf1mNM$p`ky!yA%Ysxk(x4{>scfXdu`EdCY8zu& zkjkkvHM;C~Kq|A;uH3{EAeBiP7|ViGt|ntykjiOMKbB3OW6zFdK`N)xWE>tC%YszS zOT$wtAeB>T>a5ucfmCLx9m~cOAeB?8Z)^G-yE`mQsen{wDW?xeoUkr}M6=D{DQ}O8%kAqZBi@M;cHS&~z z7Df7ugH+B-W$_r4Kr4NsagfRtpDxijNac$6H}N<~<+Q4$6JZ?i5KAc$#sLqd(&U2U zeq>zXp=`ubsZE4vT)85R7=Z0@g@>|5)3(zD+BmqPavNtGTv00Z4GOLIkAo{R(sbkd z*4d87l`E3A8mZt^b^2bW5q= z|Lu6E_*_Jwh(Hm6A_7GO_Jjz; znB!FHM}EOUBA8<%6@JuCEkxtW9LurvCEgHVu_>DFxR5<>0E<(pKW_nV7>_GhEMwtR znmC<+B~a#=q`|3$ap1^lt-G-Vz>!&M&vrZx962x52GGpZIB;Z^vZGWSS>v4Kh%(37 z!%W+5b0iv999fF4z$3up${f4T{t@7DfW<449P+`HOU>`N;7*x)8;=7lHq!K`2c6VC zpc9V+EH={g=P8`jJ)jehgZMF0X@K91!AbqbdgDs`$YJNDI`!Zm*l|+7Ps2E1puAM} zHo!g&PU@fK83znRQasC}QvWs{2MlDS>7IK|>K^Nf#{mNwsr)R0f0oBd-P?E^Fi>y) z6v(>t@uzM*ZJS%~_iy8Iz(7VSrr$mGn#HxA8b&puAMh7M>e&5pa(X#p8g1^3r|@mVa)@N!{Cc957H`s^K;MtxAyuE&zkbeB6wpX6>`$L{&*a`v60HEK0%h_;Ejz`JSjnz zJG)0k zk)>#N;vSVZcAuSljK&oz*3aH8M&n8jyU)%CM&pVHyU)(-MdQiakakhIKj|22I()1UwoD_~uL0^fuk&2zLjxHKk23QWW z3%fInE9mP!``sDFmF9Jy{q79oitOrV@3NwC<#OF;SSj!>UHLFcEBzJ>u9dJ-;9ZO~ zXr;ir7-{-L60TNQDex{VWh({V#Yklj2)0t-U0BLiN_iI-F~0@FIG`3&R9qNaDTP|( zymcnQOVT}HrNFzS(&YLJETw{XG1A~ts`4(<_ReIM3{ZXVT8ta> zSgn<&KSikD;>~0{=CN8UO@E5eN&RBnn8#|ZRF=(XF>cIbwMMFIU*sUi6stX54l^HT zInm@G$CS8bskD_GN3(8}n36tJWlV>>$THRTGesgB(+;h8rMLbu?2proc^5$_~=AIGv9q4$`wY zfd<)`vUtq1IGz8Kc132a}9V?aYlVFN5kLg&c)N1>0_5T}6FHHQu zKL5W;{J-x1AL9S*{{OdBb^U)^^|b2B%I_*!|9^Y=CfWc0O5y(xEZtvn&;QHU6n{ko ziU<@DC?ZfqpoqX85rKHjgTQt$B4&~uq6dMkRK_jr5IqQNr6F8%OhI5b2=r@=W1jZ4 zMP(qx4$;%To&TMT4-=CUaEPAvZAnwx#}3icz5%Hv@#8U1`&y~2LfPkbqcNp@{{wxAV_Q z&iJ;=RDoMq^ei{l7(KUZr0OYnjZwK>X}hU4;1HuRq$!waPZoLp4?^odw%K57k(ybQWv_6{?YlJe1f#PtM3^*g#Lt zbUu_nWrA80Q$MEUjGPCO25g{0H9;xcK;>;%Du>NBP*EI~iu+|7sFV&%#Zy}w7>_By z!&0f0J894M*a%2lxsPe97kc*^#;Q-n_113b2<%-?b+?E#+7KP6``xmE+6v;sVG zn5ooXo8tGmlUBBerGdw#;xWa3SSqv=cha5+>iiQxkTE5KxM*-1&%;8t?IGZ8%)>%f z8rW4({r{6oSL*(MKWlua@x{hi{q+WOh`6YFvGKhf`_FGc?p zy&^g_dSdOjwJ+BGvG&f|vunrIdaAcozh3><>T9cKR}ZNCvGUc*Y~}w}{;Bfr${Q-@ zRSt3d|NjyG|E=X$m7ia}sC-I!pVHl>+eB2Yx2h(Hm6A_99v1mZCd zD7S_u$$%}ebm#%)fYf@%XiNcR8A1NZd&Fo=DP;HA8Nql=QDYuzg|@UF^AvL6TkZN_ zG^P}?e9MC%>Bkf`cAq^-Kc+mfeg;WD=AmKv>`D4Dg@)b#2lc6Bu>0&u`Z16Hc0QO4 zZvBW=P)>Ga9{;sc!BE+edHmN(Ws#g6na6*vG`KM5@n0*Ii4}5Wql*8^Vg45!*{ElH z<+F2S(Wo-M?*Ds|epEqT{S1yC4`|PK(MnS#&XOcs{!Qz2wDr;1!7dg8| z8k)))RUk&c1yfn0pkDGtb;69MvPMC@4$2kh> z#Yp8cr>U$_P%lO*mpONwO1(%#?oT>Spe^?&9jBr#?*F6XRDMN2CmkmsmHU0i>G%J; zF8BOD@&Dh9J|BHBx;A=sbY`@=c5m&*+Q)0H{r~T(E>=gXZ?8VfJpaGCd~f;2^2f{X zEnimNST2`-QkpDXw?_|R)=0&?vVj9EYowtSuu;IWd8ztRHgF2dx{(_U9EjL_QDIX91`b5* zACurEWe7M8Ms1Im(0li)GIFbb4~rEK7U zvivbIa6nnoqG{XNz$wZir|7=Kz$vfdKEuEPO1Uq|A>Uw`Xkr5gD8)#H60pxZN27pJ z?n?}uLMf6{rl@=i8#wSPMk=n14IFqCBNg+>1`fQ6k%m}=QSd58DiL7o_?M3DPbkS9hOoD>6jVx&?l_o+&rxZt8s1zuu`ihbuv zG2kVCNX|oYX$AUJ#Y-e2sWiFPnJO4n@+2#Dwd&cm=vOqVP>Qtu4@sX2^2B_LTo2r* zf;=(OK%eTL|9?rs|8H-smFNF&sqd&?UEfweGI}`rU37i)k?7^oDbYSrZ|(M4cK`q3 z>L;qNsh(Bczj9yYE0uq)ysEObvZ+!j|Fk?+{!IBzvj6{6%8xJornFG{Q0XOY4Fd{M z5rHBCMFffn6cH#Q@Ysn!JPN?oj7UQ8;wS)DBMrcd@hAY-RGN&@0@e+HD@)nB0dP&F zsm-KkkVgTy8mY9Ets4N>KP1)-fNNSbZ97{x1zcq$cn=8kQBbV+Btui*z|8@|d=wO` zk;*C46aE&7Gd+VmsvHVS1qLDbd{hw?mdar=JE8PSP|7w@!Iq$ur{0u#VQJ7N0*A>5 zPcaLE&qsm77^xf<+eF1-T%2JO!MvEFVn*2}f_eE}a^jQAm~G;SGB0wNMjHBMzY)b@ zSQ=m_;t?ffvQpm}$cZNSd;}29?*N~VC`7|WL%R@;fUim0?!P6p3*iX(8Y7kGjEJ2W z0bi3!li+dxJp#UlrPP0qfUilVzO8bvq5gXWd`&7%8({nIctrUc4wn45DE$oR2+$j@ z)pqUi2+*6~Ch6nbDks`*P#BK@y{v-wW;U|CRq-{TGBM^@$ z(JP}R9)XaV98uU;2H(H+W-=O4qSt-)1pElFU9O58;|Q=_mXc!}0k%t0c8nvyc3Db} zaRk^dOUW^g0NcHrMtKBZ>$IrL^Wa0($r^Zyuu&(8G5nj#261P*qIZ zj{xW~4HN={V2u#~Jw_^qjU6L^o>ZDdDBu_Y^stm2BY>V%nglc87yRr(Sg7>6cx2 z@%Hn?uO?5sJE=>Tcm%8u*Xnb`N!{CcL|Gp>tbDC9e}xGLl_u$<7?4~Fzwzl4jVSA* zpRpy$2!Nh^RWh4{9MP)$+js;(kCCRo;o_t&UE&b{J#;L{5hvZe_0p}|;t>EnEcH3! zr0#7z0-(o8rLBHe!AafQcmzNXOMQ+wse2obDA0poX3nNuB|b--)Ne^L0@laWDzh~{ zN1W8XjYpLAky?MfY>s&Tf15u4e`CY{{@=#N;q`~=HwS+I@8D>!sH1jkty#S?s^pztOoCr!P zOYr_9Nd(1_^>dO4V2({y!9)OaY^1?NQ06!kp@97Wj;yujbH*k@JOUg!FBR7nuphvY zS;{#A9N8R}M1XTdapd4(agKmg{*^tfK#qV^R%zzM2Xh1n5!cE&0))uaD&z>~h$2Li z6TeDwL^&b-oa6{#AX8Pk@a-;ZH=_}c00uHr38tUMa8g)Qg@GiPbS!}!0Vl*#&JpE= zsMc_f03piPs#4AoAVm4YQYq&M5Tbmo{XvVW2$8h)mu=(-=pvOamm{EyxK_>)&_$+J zVQDx=lrEB-_+^qKiV*4NBuBsrQB{Fy3~)k5D*ZR-2sj}+mOzduClm^1zs-?oL=hs_ zc6UQj|L^wy*Zu#d8}Dsg*4Wr6yWju&bp4I>^XrF34@Um^{})FmMSInLRohwnK+gYv zw0e1N|NpH2|3LXgcrau&}qy1#=0wl7L%0tgQ)C7rqXEM}O z5?O|8cP2wk;Krt^^f`)*9T^60Y^3QU@EJQY4BS|yc^~Q~Eacy09nQ~P3P`Di7>3Vv7Go{_(X_@!4#XK;zRvDcP@DDZ9EL7*htfD5}edq)?qNk zEG0WK45nD6%jF2*AC_{C0RH(!k|PTLh?6lzgE;~&$h2K9184PQfD1CxbTfIa)u&4|tXz=f$j_4;0sKQn133ct zCofe~@9B(ejsX5)Ddz~_AC)ebBY=Nc$~mI&j~-@{BOrWC(O`~%@X5Dbc0dT^2nZij zYcNNY@R20_nLW%vjsX5q>2f&&_{T_PDvbLPz&|7n^dk!YNbr7!8_F;UpP%`h@c#d5 z<^Og4-~0dU`v1xGy`x`a|G!J3by)xZctFxBkCpj)01zE+SAwpol;bfg%D$1TqnbhZQfz zK&mx53XeiT9_NQVD&y`B5&t<1@|dMG<1q~KSf#B9 z$nQS~2B;v9O|8KJD#+uX+6V*&s34D3nrT4L#DF~JT6us9@|bE33{aIkmI3NdlL4yY z#rhdD9>dBIOO8-g0jHvPF-y~(Bb=#m=@JivJf>se#kFCO$1LR>0eQ?)&JmEuEae;l zd92dhDGKBW$YZY6F49NCN*+s`e}YXVhJhFVB=;?Hf#GKhotyPr1r7r*&P)3R!SI_( zIE(7u#>0St@=~c4n@TvT|0RrJg@Lp|cn)Y-i68gbKL<3dSdX0Dd{qLAV?RJwm3t&8 z9#-NfDD}?)IjMUa4+91=waTOZe&-04`nT~gV4%EIjs-hMIH`LiC>{n3#8UqpkdwN% z(Xhfma+p8%J4M99O8iLMf1EoH3hn!ceYB{58xI2pGE&)e!awZer0#7z3>b){c-Tj! z{%t%A7|2Lv?@s@)kCVE$(Xhfm+IIhNPdp6b#}t)d`X_p{sDB#|gZRly*ULr@etQTf zb#LQg5I=cozijT|pXhN?_ck6@;)jB#r^r9ij-8dgroog%+I z#4unW(;(R_(Ld4Sin_P)FkqlNfpQnARqR0W!tr94RhnpmZ|fmy%+f+l7u8$hLrWl(9P!ASxIje}Ba z0Ha}Lkac+H4PQJA(Aa!Sa3%nt@sIL@$SukKQaTb$3?M*bBNaE{_m^@~7(jr=Mwlc3U3IS zn5FCuK@*cS;0-|&v()bqp$+ghF&@%0%aFoD z-1c<)2+a|H1Bi#f6`5K?pwkezB9$)F>kok|Vk!0dL*R;xG}P-4fh%Gu_4-4~6=|H& z>kk1QGDSnZ{*b~$61*Sg&!#+1<#!cy{f2w1>;IceFZIv=d;b5z%=7;*t+&?yUmUg8 z|MmI*Gis|c>;EsUo?P9#^6SdyD?@Jm|IEtf%9`?jm%mf~Z27A4h2_Ib50&mJEtdX4 zzO48wB2Yx2h(Hm6A_7GO_J|0?L*SQrNJ8#%2>fzhs%DOs7l*(v=cO`@z{`t6$}h`s z>W6TbLx7Y`QF%s~+~tr$$~>HsZy|R%1b*4nDpGQnL*SQ5%I_Y!_=XfWmb0Cgwzime?$oa# z4uM2wDLK9&C6Qgk{2JmAaAQ+cew&RP-w<%)?_1Ntj&BIKu}bqc&N{wmNO5Cn(D(gv zVl<>ov3^c$or1#>22+(x+*n%|4S^~CK9G$eU_GX2(7OTaVJXen4FT&>>2lr;SPx6t zy8-Jl(x7((*27ZvZi@A2Fca?vcE=PAdN;5;x8_fwOypSa77u~lVJY{iV0VmEOgi_e zV0VmE9*p-}w`%_TxABm&JCY+tD!tw2Q_sHWG&xNob#J2~U_H0`?lm3)){`$9oUt1M z){~biZo+*kupT3otBPojAz(c$*m(@Uaaf$?!v_Ji!FlWs?2|5H?IA3en#eo(!QnAeJ;*=J4!#lV*Ai<`nm{)dj zK!R_v_9fur6bY8YRO#+rTs#C?n5DdKr?jxN{g%Yw0SPumWdg(+ym$yma9%2d^}xEF zBEj7Dp!WkUoUgS%xNZkpSf$H(KhVM~W$y=C*hquk5412#t@n$Elomz=@@=K((uV*N zn_7dm5Fqit=W`+iattX*EDc~O+d?qLMk+bLwon;ku2nn++d|;SrdDx~YzvhGlBE3i z#1;bfF-66v@>CmOAC|H$1ngs^0&KG_1nk37wuOLwj8vwdtSyX(0Q-EG&YqoWi-#2U zkvJQvtle6WBN|c;NP_oW?+~LQg?;pMVhcg^n5x7$TU!_pf#@;Pz${!m1fs`C<**6z zA5x-+k41ihk-K)lK3pqL&;j;gDIpm{fPGlXUAw|QE|}=rLG*A@?%F~0e8=`qfvz1y zk4l&8+ClW>Yn4uy`Trp$dZg{&NxF7mJLX&D0<>Lw=K23-Q~pd z)sKuGj(!(i@A&`cMEy~3hX3E5>J8P&>UGuURgbUsVgLWvS6*B>sj^r3SLL0> z^Z$GHFt9lKA_7GOiU<@DC?XJuKs*Fy*o;%e|1b{p8D=T3DS{bRY2K^R z#&<(thFQwK63j45=`rvjFvBdhzA_pDGyI)oO%cp67q!oN$3tL-znvd-2F)XwVIvj$ z!R8UnFiFWgMuT96zwOOpG^ot53|PMn7-JA%u&GKG5(&l_1Q=|jGPWg$I0!J9rQ{F? z0R|gs$RQ2_3}z`g#6f_;Mk=m~9O59r;G6TONaAiCVl)Ua_-4Qug9-*qFmHwp98~&O zKf?wN0=+R+OK`~s4g$R~(g2ws4Jvx0-vSt8Q2841dZwsEki6a?(3`w;z1TwXdV@f3 z@=}>2;s?41f!-LYG=RL`prSV}V&3Zwg0C?}Wd@ME-XQpzZ`mG$z1|@B8kH{N^#+x% zk>KTP4SKynpf}%w*Beyy21PU9B4?Mp-k?%Ba@gMjr!ffh#xyY0rw%H5!`~uO>Qe_n z<>Ze=e*}Q~)Im@=ETukm5L6CJsZSjQmBUior^bUyTU-W*papxshnt;JFu&;OJEudkHn{~yHu zf7$*2UnKnh+S;n>J>vg$|NpH2Z|(p8j`F4DWc~jWrPl;T0L4EQ5hx;1M4*U35rHBC zdqf1{L4d_(93xA7v^qElu=tx;9UKH$Y>LVdh`k@cVwSS^16XXN!iLl8;2^+ama_K) zSZt(XN7(xTEdEA*yeRhEdcSy3!D1QNvDB^(#)Dvvja2p=w>)V)2HLu-nIV2+J6v~k!Vm}8c*&s64^gB8L>27x1+TBWVDrZ@;3 znWgMA6-O4s^$k4cJqYI56qN?C&jfRPQyV^0nPWLjm1Z1ZXbZ*=H&@#1W9~PS|GxDdJk$X96kudj7=Ajvdx#MuUnJ$tn4|pT>&@l^fE}-aJNw zfP=oCOwcJD_wl;c4VK<2B2{@@8Z5I{yMiNc*U2q2bnCk+C~NM$03J82L=Eagrb z1dx$R*Uz0a2%xX!gDu@DchVq$SjwF=2p}Vs=L5Kt1_4CUKqn0X$Vg?5)OOOT|G(Gm z|9?f}jP&>aTKvE6|L52LZ?BEk-r@HD^Xva})%R8N{Qt`qvdy$uPmQa zKCpCu>1(CJ|L+l_yW${=2ow=0B2Yx2h(I_3@gSIEGdKy_LNLchDt?Jj(?KxDMk=+k zEmY=M2IEE=Tz&+O%u=?6z>!(Xwoq|o8C-uYv4vocO;H(zvMmI2{M9yWA(&&8E@unD z9CNK~3&9+JHL-=t97{0Gw}>%dTc|j)9QIceTL|XZ6qSWS+SqXr%rQ&Z7J@mZV+q(o zFvl!qTL|WurECkq9JAEg!e|i8@mGO#41zi4qU`;^9DgN$cEvbY?-vh(Ic6!ZF@iZZ zQt@tfjWHSobNm(W7~?@O$EK*PIr6lgVn31yUrDC*!1i!ac8p+qSjvtOY>$x!kq)pu zMk+l5J4UcQMk-wrJ4UcQH|9@~ECaJ+RJKR1B9^ja1oo4cDk{K^5!eq&1C9~cPhKjV z1v$oe5ZI5AN^fO1?1-C+{qSLh`tPO^K|v|?-%Y?mrU6nb;Ui7JLM)~Jy9rpxNae7o z|86QQB>8(I`tK%)AX8M*hx+d(h@dYo-+wnj1gUhH{=2C}kOYrwrT)7KSm?{X|5pFs zUwUqM{r|N3O2_|y#Q6V9Ysc2Qt3Rv`SKn5BX7%W5XXX2q!OB}J7gvrdKU)4?d7%8U z@+-@ym-j9GzVxNiKb77sUr_uN5hx;1M4*U35rHBCdqf1{rh>>AmSjdSVhP9_HkDD9 zA=Q`R4VwUwY4F3|u&E$2e~Z{i@`gGw8GfT-)HbFKUskjGnlueM$U!oIBj@c zRL)4+em!Ocn}CVvTd3EMn}CUoH1vA_O~6D(8k#I@0w!W9-w*&3sdSm=znXxFSjsm9 zz(g$N8vJk5E_5R=9*Y%#>`?#K;_6+yDx#ygomEFJUp6tH1`@-%6 zx_;X=-}UaUi@Of%ysz^Mo$u>>PUqT=2Rm+D_H^`LQ0eIGT;=|{FF5nee)-$|YybI~ z66fz;>;G^6d6^RDwN>KWOo?;bD)F>TiKn$y;+#y0bJ{9#cBaJHZIw7HQ{t?)N}QP~ zab{a3wq{CfZL7o?nG$ETRpRtaiPPIEaayLtX>FA_HB;i$wo06mDRD|$C7zlo@zl0T zJS9`&DQ%TFIaA`~wn{uXQ{u^Ol{hI=;-t1pJSkJ+No|$bk}0vJtr90@N}SkMi4!s< zPH3yd=1hsrZI#%RDY2=o5*srmHnvq_L#D)rwn`kIDRF#TCDvz3tZ%DCf2PDTy}GZj z|F}$v2a=ZL7pFnG(meRpRJOiKE*pu`W|$U0WrN%9J>&trBZ9CDyi8BF>bE z+bVHnro@qLl~|K0v8JsOM`TJI(N>AWGbIjhtHfcM5{I=_;?PWqL)$8GNT$RgZIw7U zQ{v#ZN*t6aaZp<&4$PD|u&ojYWJ(;+R*C&HCH8Nt#Oh3m)oqp7FH>T_wo0tZlvveP ziG4FA_HC=g%1nusZIyUproF< zCyWAOpYMOWdgwpCZKJ&Y`r4Ps>wjFkT3&y3L9zZXVJQBJ2ow=0B2Yx2h(Hm6A_7GO ziU<@DC?ZfqpoqX@JOYLPe~h2t;_!+H6cH#QP(+}JKoNl=0!0Lh2ow=0B2Yx2h=4>u z{r?5!yE+=bZ`>xo065IX|CbUQ(-Lj*|5DwU-6M0K<|bST1V};%cSs=CXhw+%A%R>ZA?)U26Cf8! z*uVmbzgN{gqnhsOnO^qCe*5Jc@%uIH*YE$T>Q&Wyuc}}5Xr4Wwp50Svn(q#%r}I>r z=A8rT`8$=S`QLzg!cL`W9yXw!p;Kv^4-KfNbWqLrul_{ zdh$!9X_h~rp6ya;nr#oLr?*s^X1xRI`7D*D+2??I0!yW77C4}uu~KQ8jSZ-$s8pI} zMFZ+NDV3(#$$)wiN~LL*Frc1wQfZp43#g}=RGMbZ0_u4sm8RLNfO;ZHrD+x^pq@EW zX`0OmsHcilnr2l3>bW76rrC{vdNN3*X_g_Np8Zj2+T0JQr+ZYIHoF7r`5l#}&EJ4} zLPw=(Cv*bp861_SoxusHr)*T3cFHE8o}*D|+BuqldQwKEX(wd@>RA|-rk#ZesHa_2 zns(YHpq^(@Y1(;~fO=v@rD-Qt0_vF*m8P9Z38<$|RGN0`B%q!vQEA$_l7M=0M5Spb zM*`~E5S6B#4GE~HKUA7_`Xiv8?@(#l`Hp~kfXp&8N}SlN2h=tI^c65-QE3(bUrrD$T9Y)bkE1&85-Q6AdcOsnOIk3n~q1H1$-1 zN^@v5_1u9ApKODlpdGvmaddW zrSqg^Qmb^LG|m69|1JNI{Bi%I{yY3*{@wn~{>A<#f4Sc$ejvUnzAC;TJ|f;CUM3ER z8^r};NSrCUeDC>w>3iAtobN&3jlP4v9lo``(|vP&$NM<%JKi68k9Z&P9`+veZu744 zp5#5z>-T)%`L*X|&$FKUJy&~1J?DBBdm246J;?p8`*o;VmcOu!N4B7yci=vwwki7+ zmYQ!-n7gubt4{&*5{0?bBIZ#FbB9ID^%UlIixymBuWeRhpMa*Lq<_e3L8!61?7BRyV=8#3qS_(5}5z|azViqyQ6h^Uz zaePQ&WQ&+LD9mLRF;mO`OD!U%mj9PnL`*IJFSdx7TK*rjh?rXbUt|$6wfw)(B4TR! zf4~}oTK->P5izy=-)|8ywfx^_5izy=-)j*uwfrBoh?rXbk61)ZE&qotBBqxAd#oX- z<^OJrh^giOkVQniK#PLZxGoh1705Wk7fLj$7UvYmIL1#?wMeEw#!-Hns>Lb=GLG}p zR4p1Qka47+rfTsR=ZP$1)YKTXx5f&v*w{AsG@_X}hk^QWnr zXD^U()SsqmzPmuiaetbsdFKKdNB(K5=6?%h9Q&uKnujfrarB?2YCg0;#_@les(Hx* z8Lt4+RLu_-$aoEqrfQz9K*pDv^+1}cd5r=YuL#mq%`X(lcukO|YL>r1=4h&B+XI&Zk=F*4X1xQKP&Cax z2QH>)ngtFVq-dIr4O~RgG%FgokfLdJGH`&RX_hc>0Y%enU0^>&)2vxwA4SvbRbVeg z(=1Y8l%i=iCon?MG^-LArf8bo2<)L~nq>&=rfAyS4-8Q>ZFUC+DcYbq;{&@W+AfVY zK+y&?+D?kLQ=^?v(azUs{S>WVqwSz*J2cvMind*&ZKG)0G+G};>(gjkDcV+z)=SZP zHQE-6wnd}$P_!P6b{<7LPos5Hv~G=dE=4<6qn$(1&e3R_DcWX@b~Z&jTce#t(azFn zn<&~Qjkb}ZZPaKRDB1>%ww|J`*J$e~+B%K4mZGiIXlp3i8jZG^qOI0wXHv8?HQFkQ zwo0R|q-ZNun&@zG%eaR*=^g1u(h=zq>9BNA+9s`%PJ-3H-~WOC*Z!CN&-(B8U+o|D zp9^dMM*mDd65kbH7bnHX#5+UO9w|qbFz2JKY*8Layw)$51T77eT zKJVYXzx2N3ecF4k_e$@uceDL9`vdmf_EYR0+fQr{+Vvk;=^s13jr^%CFuR6ib?B;)!uHOl=BBV2vq}%i>d00h)2%_& zfv-Xey4rEga+RXa3l$Qu22rPt3OR0Js4LRZk*gGSR;iF_3l}bI?Ci`1Q74@Wk*rlr zos%lW-__C)XLRm)FK8(TYBt#%NoZ12MY5| ziAukEVVlMQxy|kEN*f zH1*3V>Rg)oXo^}#Q@@m=*3#53rl>)h`h^s=hNeD}qE^$?hf~xln)*&gR;l^( z|Jn{i{(pH5kk>$719=Vn3u_?1{{I*5+kk>$71ONIO5PkP@(`;Yjq_ZTK|59;>?;)?^+vR!O{l4o-=Qq(`QM04MuGqe0 za|=%HAHe*t^yj-5RTZ_j3$dcno-G4?BRjjd3~fEoJ+h-`cVGAJ;l7c+(eD0TJ=?Q9 z;ok0C-POLft9)&H$Fi>SIp#9vl-GzJ_niK%bKFZ-tnFIVwR$f8_wLbQW2u=e{kyhz zZ|xcFnd9zQwz7kuFlm4P*3lhC&K-UI+jop+&{wTqvb=rurt+m-n`&?c%G=kiUAbfh z)O>l@inT$}6O=CvIE$iDAvPUH38=THG?VC`|vqD6}Yr81>~-l2h^;qGny1EYPzpoyW~eZ!*% zx(E6PcS0wdKjhvt=){~EltVhCe{i&Kd*5*R?qL{j!w1TD_8lni**iMaKiE6mx2tb( zw0v;r|9%ajmU{;V=9ZH|ttxI#xz;p|n$lyM9+Xd*<}9kK6XZQC#p_hf{U)n&|2yhT zS9Y*xSKplS(Y^~tp^jVoM|KbN9O#}R29;@&v#7FCh`|(8t%Ta2!$bSiwS#-^*Cthi zXP>BE*fOXkfgMWgOVgwJz@SZdN}izBuyIb+cwbG zJK8@qm?rh@>K_@Q2}8SkdizHYs0=~5%}@GFsa93ev#)P!ckhm#;htWYEF+o!4*gG})Mi1HZ>QBzgAnTCrvlBR?qQ?n@bBy*HYhv6qD*i zm~4ba9V9gRQ<}idZajf`rGllzv{_SQpn|N*`^1VH+1=OM-v?%B%0sAXQhh%~o*FDc zd8G>nD!kI3s<zu7Phm*rM{aT^rYy zuUoO?%ynHx4%`I7VSI$!Yx0P;P2~$9Bwo8@c~?g1!Ff(p)LF)J{exTkE*RM}&_CMO ztwuTU@9tFFy2GhE4=grZc)=l`=5Q9xo5w5lsb0^VPyomzpbV|ys66xeC+h5+qZ4|3 zFFl<1rT-CBrrU84!N+!Hwg6mvx^i&uFsV0*0IY|KQ??e&Cu5#v4BL_6UR6734}~d4 zy8}c<@PK(40R$!+f(T611ro^SESf!=mp7!;qSY3ZqTSgIDoHo!6DTC3<-J2&Q?qcD zfUrH>q*g;6nj?LC_Vx|-_Gu$E^-o(yg>(;VZ~=3HH7Hl`WL_&Jsiy7I<~8}hkRb(+ zP(uDh19PNrSI^*Re{c6b2);J?csz{RE8KNZ&~J z{^6e8X?q5ijtJ?ypnqg^%7q8zNU0i$O0;THi)bnm)ietfo?|ME!u$_(rxug0HdYB% zDb~UiF(}u~a25rFg2Jk`)~{N9xMSIB`w45RDZ|jIDSGDclb4k^i>j*yWnG4jQyW#J zhsi&fPR6&609%h-XtQ?b~q+ShES8 zfQadlPntdlc6Ul-YMm$Om&9xDdX-=ErL>= zqHTauWMa$RWD^0HhW3tb>xXS#9LYmZ=5AAWA#tb*s2}S<-vUZ|Nq8rM!t-^2J#xnYap+Iyaw_b$ZH_4 zfxHIt8pvxPuYtS<{@>Mr1B$mxZ^2cVCVeQqC;dr!OFCI9m+bzx{NM9G?Z3-^nSYyq z8T{^FvG`B%P4Qde!{U|V`QlP>uITsu+4rjNN#D)BQQvxBi?7)Gq4($B7vOjPF7=-0 z?eJE3?VjIyj(Q&PT|c*OmqL${Ui6Y?mOHUx;MK|b(g#CuHU&{ay{m{$u;WQ z=$h|3!6i8V!}+4~QRfZLVdr{hn{%d-?YDIf7E`HeXo6!{Z#uLJF@-W_6lS&++jOtJI~f-3))2Cufl7>*M<9p zn6O<~CWM6P{D1NP#!tX64qnX<@@x23zKrUR;;}H|-0m>9s(%=AEz3K5c8~V-4~~?F zBgJDOlShrkWAjWNg-ga7;1M6@YzB#;lCgUAnP7ZYJT})vB*5xSM26Z*#%fJOhT4k9 zf^3l(R%0fzwPdW?Ok`{ESe1!LfK{4_Y$+K#(M)7Z@mPh4NPx{T6WLrcHrq^ObMaWY ziAaFWG7}js8H2aaxa$nv6N(m(m6?bH*i18#O(kQcW+I!4$7Yy_1Xzig$Vkapv6)C1 zvPC8$0d~BZ$i|YfLNk#t)Tf(>1XzKYNSFozGm+uqvExic0&E(BU-g47STwW+&S8`< z#3x-K<*B?8rh#PgEDYn>Z}toZrfBvIMwrj+84MM#*)!;KkJ&TmJh$01=mnSAGf=0~ z>{)om7=mYbXxj9O35RBkIkblct%X5rb~C8}w3$f_wapk4%%o!b!JA0MK+aTZ>x|f? zrczr=Vwadn1>nV|Qd?%k4w_1BDT!TVCKZ4eno4b+5j$WiwYemAftgeQ?l+Yhoe|q- zDm7XX+iNBjfTN~Tn`XpDOrkJ0&tJ1)X0q3Zd0j|lGu=$Q~(Z|N^P7G+hr=X zu_QKNCKZ4?O{Ios#LhRB8ZL?Tn@J6q#&%$H)WWszhRnEu1G`81%2)0k9q8GQtxjod zyXn(#TWM^Y`P0_YSfBaRmeSZ(^QXn5CpMYN#^8-vWVg?hHp*h%asO+~Rb_LE3atd;$wu_)HUegZbWS+nseC8(hi z)Rj~$QS|DO**p!BBnqV%YAqckdQ%&-5`djP`Q z`Sm}w?-9zc|MTnr^e$K^zy4?JMTGO~|NQztzy8m!|MTmAdb1?I{x@zQh4Slv!=_p& zzy3GsB)|Ue8%gb2g!1cu!LV_^d~=teY(Hlb6{Y=j)| zIKJn2%5l5nBFA}-1&$hrX#b1-$M&z=@3kxT?e=B%u=F3&OVU@QTciWhxl*T8Bl-OA z`hV>In*ScZ0$BrR_~-cx#P`KF#JKpNc$K(IJX35IXZZf<`;G6Y?@PWLA#Y%#?_^)O z&*6Q?`-=Bz@15RDyuIGV-g4|z~xc}+?wfm_1OYR%o zqwbCFlijo3$n|^ItFC8UTU|?B4Xy&$U7on}4QJf>pz|u{F6WufX6Fohq3uK4zuOYF zhi%u`hHPtX3vAUkkMJkqY2gmxps+xw5q$g)_-FV#_{ypO(t7}~Y4R>N0vp>AQCQQn zYwvJRfBA-<;o<%vc=H%)goo?NLmT^H8|)xNME0{XGpS*Yb12%w-v0V+{pFqg`}zm^ z)or^Ohse$@u8;m9ykR?p_jRGNHsixq0p!-2R480>2yg1*%Ic+tBPEB(jxOt2W62@B zpUcESJM3R)KMO&5c%zqz3zZxqyS$9@a0|&EFSGfrP~Z}??tl`>{w_;u>x@HWcbBQR zmKlf0-Y&DqmXbqcXE!ai_)ryYS6EyKU*+f-IZ(cI5WlE~!O~oEs1hFWVbNxI7A-k+ zqWVlQJ}W+?=0O-m0!+<=V2ErgIi%)6h(?i3#fQ{92%|`Vsd*3#k&s0Io0s{Vn5kT# z{GQmqXim%_HQ|RbcOu1y)Px`7+yO(WCj2nw4j9T(vl-r4d`M0BF^UA3n()IA2^LLF z_+ivCTzp7P_%VuvR2uwh8rz}u{X6>yw^I%cU}{p2sDBi0Ej5Tx_41VS?0A;{)oK58vK1j#(i zM_~6MmxrxHF!YeigP#d{RfRx{kjujq2{2?P5)8e=OeAO@-r+Ds0u1ta*tG;h4{1E? zT0*Zu77tS-z#xf-EfSKLAcu!75_%g_c$gvq1{pkT800=d0uQ@5m>X*58bi;JN_LS+ zaj_3vFz$y;9ltiu!kpRPiD^nyS4U)i>B@%`L&P-r69AG$VWr~D%4J2x1iG(49gI1PE zfZ>ppDH2i?Nh$(MBn&;AhrkjEFr0(H6bZ8%XCS~c!$=9ikR>??3|#^YCm}FJf>Aid zOe73-l8C?%39$KQFmQ@E7lBzEOc9cezz_+KNIHTsOS~~uJVx>njE}G_frJFCNkg_b z3|PoVU_OF@2k8jRM=*dO8-e)<1_C4_FdsFEo}Y5HmiR8voh; z2Ju7j6-b+12Z6bRp-@oL_cc=G@>s5q*Tdj~+r7qvdF(<6TD*_7u){%y$Irzpy`R zzt-MkZ?(I`R?*>m$#=JJ$ajj*=Y8G#1vo{p%sb8VQ~o#nbNuD}YQBQ|8#hU<%e7n2 zPi+f0p|eyFZeO#sd-1yEE4n+{*K~DZ>RPR`ALv_+S8d!k=8l7rFcBXGeog#=J|h14@Hp5Fp|g@DzNxEYbz1xu_zHwt z#N+eE!JY`66+EK_5x}I2z!+T2ftqnJGeTz}3lU!2)xLlz6ED)V-k{Y604bG`53q!r4AL+S9uOe`&sJV2f5S(EJ|&SR&k_S8JqY?aCF42ypGt z;P$Mw0PRXVqk?v6A;`SwKOBeU_56>O1!;G`_vfH{tZ3{aWtBfGA zzh?lm*N)d>_A+CgL#;5rv>xplCcPOP4`Sw02D4!>){fVh2{w+z;CQu}V8bwM7_Y*- zm5fTT$6)<*+> zg@}188I>>_6+R58U;s=;g%|S|GWat`MQGfE8H2)2nU1YBTfewf*%*=;DP+oS7{RA;||O`+t@~?rwWeSF?%UPHe-a?%<91! zA%dA;!w9Jv=P_@Iu@Z*3p=zANtc48L%sE(pa6^iO>-BXpjFThXn6u2t z$r>j|&c)2L33H~wVMR2-Bj;fDQig2fI61P}tR6<~1&^Fdn-V$Ra40@|N zvI(;mGFbKFWFuy*Ffy{o2`nK7fj>yPn$lZ~xeWox9#R)PI#w-Ny|%lvebri6YUph{ zFpi`di4BPyfjt;p+JB=s`#{YR*q(vL^LiAlZ!+WB#+oCrU6W?bv|E`5&K5obyEoXv zF-AGt#Bq<;9)VpQJa~;5{pdxn)E|Lu9+PQj44e5A<{g2pA3TKh&1_^x<@~C-M_@+? zk78qWjA0V@cJK&UnH4hFBblQJ-81hoIAlJOs*dzd zjp`{#2pXK(uT@93OfhEb)rKQIn6Z*E{Mmhq-~TV?zQ9S}mF|+ZOHC3Fr~W_V-{Ft? z1z7*zE%w73dmHQl+~YeRPWaos--pxvJH4%5hvx^L`#b}lHV<l%bp{4VE@ou6|KIZt-F(QD`dIJbWa@;H9tc+j!OajL^>|Ec}+_F?;JcAxEMwufvZ zw$tHk{_DcS!l=+L`1zmnkMMi>4qoEkfU2o~A*IO!hg?g@-?84t_QnN~@WO>5_%pkP zln4dc($d)67VR=)R_P(7k%IIz;=i1wgek~*jjfGckM zuC|m>kY(1IKa+wiwbuMn3UY?E=FgxYOQMlzbF-wYe`*kW;NG*-t@EvDSQ%f}Cuv`92CV-&*s%6yzjp&G%4{Hfzmy zQ;=3`&393d7HiFSQjlhA%|{djhL;t`=b#`>)|zjpAQ5ZLw^5KrYt0uZNZ4BQc?uG; z)_jhF%(K*d`BDnfV5#}?B^0FIQuF1DDac$)&6f{Skh+#uh%P&Fm_GR;3Q}vW`4>`< zU~{xN9L*K<$_FS&jWx&x6r>sg3-XsW=9l+VkSYz4Js^?yQIJYYp|!l1f}Ggc+}M&c zfR{%pNQE`X2nCsAtzyFzWVW?Z_E3;=YmnU(WR^9^5Cu8G8f1`ylv(S_T@+-dHOK%3 zDFqV)|K*x5J1NKvYmoCPNJ%sK%T-E01u3=$*+D^y+Q?t_Qt! z_Hx@FY|q)oY^!WDg|{FZ|1$U{UornC|2Th;U(8SEehC$${=zYArUh*afcr{oq_wp< zM_+{%Y^T$h$66P(wYB63(!vTh)M?C@+nUon$})&&YFp5p zV>cwMV3VE3JkS_|-JqQ1V4I!Bd@d4>H04@&h81kI)0odj7Bsa)bB4b~}x^*BS;J?lk5eYZz>~)0n%hVX)~=V?JXIgKc*jbC)#? zHr{E>oz^hedZ#gWSi@lRoyOd54YQrb+-424jmF$+4bw+sZn1{hN@H%ehUuj-hpl0@ z(3qR7VR~rHjn**d(U=>oVY+F|_0}-w(wOV4Va}m3*IL7DrZLwvw?mMTW0xqboK0h{ zZduUM){@i4pG9M?ih{Ln%IUW^(U>dS!mUlY%h^a{u7EcLp-9g5Y@jihw=~0Rf*dQE zu(F=U9BOTAjke}2XB~|hv$B*6D{E;?%*tk2SXo136l*$IO=DzhkF zCiM#EQY*tCq^zVMmslAEA!P*xx!8&VLdtRqa?r{c2r0`b$VFC$KuB3iK`yj10z%3e z6y$)F0T5D_P>>6(HGeS$*>9!$L&_owvd>!YFQg!Qt@VBv1sS#0`wJ+@h_&W-QjlS5 zz28AW_E_uvb_%lFTJN7uL58gL{%I6s&|33Pr69W^jqt7{NAMX^PN5(JtqWR1@G>rI z%pOusrXV}v^=(^YjwMJ)nNLB^hqg2~<*>{loyH_vyIPu?bG_Gz;XJ4G zxK3EfTnNW-qEi|((capQtCnN_;7q49Cf>0CUU}!*SBv3Pr!;1~Wnl|`eVd~koa>av z9D$c%t@zDb_PLFdozj?Zv@|t0MRV#6XFH`aFTgt|oV1#w9Gvcy#ysB~ZtBWC4sgCx z8uN8X+g+G*e>H{^p3<1FL9%C4Q_l9_jHfi_xt3NaC+B#>DNkw4S3z%)Tp4fS7|wZ0 zW1fZd;12v!Fnj;tq^C6InO1nq+nj4(I)<~J(wL{)Lv78uvRA_~oc5H)JQZEo3~A-L z>W1^4(wHY(J1p!M$8h3P8uLVB2W*(+v^zNSDUEp?Fzt;wlEg*fKe>h66C8g({Qg}B zU&#HAdqR3m`n)tEbx70vzwti^+* z_YCjxp5J-C3Sa5lD2xl&2|YrSfcRHE4eo!qzvI3OG6UwjMc3=D`{1hpb~r;LY;L?i*KnPCr4bEA1h!T zqKS-OfRDt0dhW_p4;-5}Rgb4`d_P8kdN3;EfC*DQ`!F}00y1*z&N`x3g5!HJGpI+$ z++tAA1M|j5F)y3|%H)MJG;HCU3Tts!8ock`)*Qu#H99p|_^&0Xug|+ZS z%b}V$IrUv4+>>)CRL9AA?;<@bbggb2RK>NE-dJe+s+FDHE7z@EM!rFjIY&Zqa?(3U zL{hUmVm^Fp_P8)WHV zpZZmlrZ_nS9%kSofYZib1`dzHXq+4cXB5}i+P*k7(9^KR{kuoVH#M5#5IcSwK#G>oK;*DU<-Ah5W%p8!$X6kb#Zb^e3rg-FbKm7SFTmHvT$f&8JMx)syI0) zUa04V3Er}J$trb%;}$l@$r16W@EJpwXa5{bG)~ToM;O2`d`Cv#3FJF6xMpo}a&&w? z0~cyvqkU{;%3-hBF|>DJt7hj~dxzosF&#a< zJL|^DA@f;ANVpmNg4#LQFR1-KehEHnS;pXIc#-joF>^J8+02WKA5@QW8u}@0;zhqf7_!~|`rs56enS*aQ4PtgU8*Qu&+d^~j4X0fg1K)5mVwgr6zTq^05pb^C zh{!b4w&?gytoVp8{1oX|c)8vyBWejeXohIL;sAe#m+G+A>ib@8;%ubU}RIrLLwbL8$$Ym8_W~bL< zKoO%(Iy)`$JGe!>o3r0)AFy}Wi)??iy3%Jr`-Kl_qcn^ zz1Tg?^%K`)F2%LZRpb27nQ&g?T;rUH-b7EJ%g_c??f8e|RroT%e#cVB9Q)twFY<2T zDdB42Tp=vj`PcaS_#ONX`)yngQGxKFemaENI^dtLjl(xt$vRbsX*Mi+_$wOX@Re3< zOBe+(29@yDx_G&2e2j}o20tu04}X0W5JprAEmN!x$$%r%=xu)f>iWoH&_?o)I>HvU-c= zIPo%3t%Gahv(#1_`;TE3@|ytK7c~w0LH{>40czsJ$d?EY!2HU-fi*WyO#E!ZN^LQi zd}gL9u6=q)C)u!n6^s+RUTUmD$Pi-I#)(BQWAGZo*I=AjbCzI3Xj~g#r;ch}ZJA+r zb$l&mF4EV+xPMb0UxPU-jGXMxDpkc-WBx)tKU5<#vTcZ;i5V;PjPNlfcAy=Kufl*J z0Z_fyY`#GhjjzOzi10bR?adK9$5&unn1Rb?e53K@%;LbD=Gf#|#w-qS*<3_4zLZ%U zc$Tc@ur7WE#?8{V&df(F!Q5pGZkCT&%w&eW2-YUYBFtQ>mki9t;5oh!^A_rPA@I`$ z&+#tI7!^L7+2!Cja|F-v1sE7%0J8_r@lK4Jug5iYM{))@UZ!;3ym7Va!{} zs07IE;mS9L&TPg7%<}PD!v%EnKlNsg{%NtZ<=2E?6U}kuOD$HA` z=LK`4_Xd@iF{*$01znfR8=Q!N5e6`aH>kk4`3#%|Z!iaA+l*KX-e5L{26fOdtc=XO zfrw^u^X+{cIkSJ%-se2*+ybZe|Af8*zXRCnc+>H`;|9kTN7Ui8ziPizdQrL&z7p6X zA^+?CFZ*TxT7R9N7he+}5C_CgvB>uh{-pgX`$l_>?PJ?3wg+tcY@N0l!e4}=!rj7%&>;l) z-|}DMuj9|->v=o(dMXLP+W(y~P)3pPXr^&ySlkKXL<{wth8Osu3F10~gmKE^;!ix9 zTHFcEf9h(%jK_l$#DA6=D`NbdW$gsd)=C&%IU;;>`YL#?c{ z9N(QE--_XF40ulG>bNTs@5N|HHp<*j4#Se!%)iwdujCF+*1!u6yZ5sDttk2z>Pa%4HL&> z-bw~9+l|yukhGr)27qaiswPP0Pa%Upb4#juf~5UKg+~m5evW8yf}{XN7{IKN zsX^6xW(fREMt#GCR~<3B`U8UPROU^1Fu+g*tQSn?NW+AiSp*>16Qp{=g#ktSR=`UP z-QGcT!ihN}!o!A9mi>+X1jz{sGjLg#lM^I8$WR=()9jm)6C_*6P+YD}$q6l2NY^@m zW#5#XAh|-bjICoXLnnBw!!iapV;MTZnJ_b#p_gLjQln(nGL+;273z6mQe-Yeo8lw~ zh^5PBNJr~nq@&@iq)?nB0tJPKGDZqs)tSYYHSvpZ^-BmOV^hNzIma)=tVIk~Lk{Nw z%vq@8gw>BO&$%{!0cI@IF|t#Cg7N*Bxs<_djBexm%mg!{+xT8H!G`FzAwG(ED;bqA zaX#@845(lL*v=T%$=sCyJE?m;xxnw=06GH%*bAQG0Mr7guhC>{ugJ;<%vESb? zK{D$hLBN1wZJY~}^%Eqi9s)ld0KA9M{|UD>PLQ;E2>f*XU`R|{pwJhdAnEn6w9D>QQI>{)Gsgmq;M zMq?UiC_y5+AYrDaH3TW9o-RRRx)P&&gQp87NHAAwWM%BGB}g2{sy4&ZBuFU75^V4^ zRS6QlF%+kBqD=`Bu!V&uGp7UCsBGgpnjrC7#0bmrt~)^jHb!w-6OEz?60b3e%kFlX z5+rhC6qofaMKnQTI74x{!%7m)%`$3*If*AoKv%}#HqM#a2@=#Xm|0=v1PSFzjglE* z2^k87$1_KY;a5*LKrirw{bs}?7kK0S-}|VEJ0{u5C7cH(@dU|=@P+J*_T)mEvm z1gO{~KAhNrg;y{D?D%kEJLXsWFr#a9_H^#VHq1C%_zHA3wb^WPfUstw53`pL_6)fO z^H@Ex6|)xUSy@}?y=rA~9WsUL4s%Ux!Hhv&Wy9GHb4~PMNSVGCChtqm!_1`&X2#g) zHWSPm8|Rt{HjIt>iE}V-g}xHz?@Kmg{z?Wvdn{E=oQ(m6dVpc=Fn2;rY_($GAgOIddRErh*q~O{C{#Z-)?>yX5ji!G@m{K#udkh0haqM9T9}NDwV1h- z!OR#NYs>_*#>Q$h!HltSCg!csSHgU3tit@241Tk*u@VCc^#H@zsF_%S8B2sOTj=cN zn6*gH%IfT8YUxIy`p#a88G}S5)!A9LFlr~xz>qS1ElfIl31%*3Ff%%Pv6*02XD>1n z%;@Zen72Y-3G>eG!u*vCezVSAfB}Vi0Hd=zF=L7Tl`P}Mspx)@TPR$}!<+q^q)m|N z{~lTWZ-?Liv%{JH+r_QIV`3Cm|F8KT^6mC5@D+LA_8#$G>)q(B^Stj#2p4*;g?IaP z?mxQkbC0+ex=UQYcRl4g=vv?soo_mycisT`1kL1E03Ss%Wcyda?*JqnH#xRCnjJR# z>-NX&GW-%imF-V(*8fu5BHJ|KXI#?cKeN~V!tv1BGT{aN&}Mjj$isgdn1h5lbBSU0 ztMUMO) zz|B}cC5WFc(~E}vD@Jx$f;j3@2D4$uq$)xDbfKQtu)`Bd5GNfJzMeT!vb_gO5I;Rj z4}qb}IQvtZAWpiB!EM|JoR=Vux|+dkvI*FbApW|Nfnd+0c?sgS4Ml*;O}76U62yNS ziU0(A@2@&RymyhlPO!tM+xV+V5Z7HId`&;24F4mS9G_kszL%CD;&eR3$ppaKNa!%;>8sq2;$37{f;3xJC4^TvnwiLDJm}#liA0n~9DlNamZNI5+{4{oP{XWUQ}Q zjA}BC*nG@g#^7cdF_HskUEWlq`(#Gd12yZZUTX~t%T~f2?l3M zmI-Xm|mlLqla4R!{h5eIkkh@B%~!fR-8!pKxnq zq6zcEdkGys6kuZegl$}7qR|v(V$S%F!ig{j!P^X6RL0`h#G>(U)Fwh018*~Q)ngnd zy*-?mrxjp~RM^oyd_f@5fHCj|0V9SPiyf#*)MJDe4`moSU6Nu|U1Ba~g-<*ggc}Sk zd;u#_hqKXIbU!#BxYl5r5+2jjvWs)B+8ipaMo<^J})r~1FH2Un7==qmpFlmfI6AX z?Ak;bMwIExVA_tl#7xXQi^0sWOx1}}%w44C1~a1zPFfQ)FlU>Qld`I8dl^lXV5s4R z9dvqDFV&PN#yHmd%{`(izoX2%lESH zPTzp9!*?8f=kGE2&fiM!Y|o!O-}Kz+8StFuInMpM`*ZH|-Hon~TuIlht{txVF3I^@ z=VQ+O&eNPO>2CCM_`2UPIt7W2HyjU1uR6|l%(Z`Pf6;!AeaPNs_uJmEeZ@9vTWTv6 z-Vu%nHwk@0tKjE<1Hb-vg|v-7i?5Qx+)>?s;O3Zr(28!*TD9=a)D%(V|r(xz<3}(hkJ(`p- zw?Qen_5+%devAw2OM#V0*6oL+s1_GDjFhZfw$Y@IiGv6&Yd{!HlBB4JU??xw5F?pU zVFoVS5UWd)EU8&~7*vy?``V6$QCFYXivbmS07MhaV6G}LYEo-mlv$M+nPQ|g zoqACRT?L4q{^9DxFlH<=Hcy`v7EJ8HoGe8c10|083h)MnZ&;p_@RD;WKxXM7>^TYC zWx!pg=Vs1HSY5sg%+-44^qg!=&euW_ysXO@#pa<%B-x5V5Wnfxf>{iY{ef_@1f!Ud z5_>N4->y&2#u#Hv3&X^?e&W6%y8p;6=U(7^xA}T}VIL=z`2XmS`w#oi_Ma&J0kZ$E z@GkV0LYDtCp36P!J=N~_#WTf9-v_>z++TNJ>+W{fyFPZk`meNN#gt~7y$O9pCnGdkinn%e!OOqxcL&{WxehU z=C68^`1m3Qt8Oc}YLYnkLI!81p$ttD=N=@Cl*xhD<)+DBlf=iD8D%p&oA~)s1~a3x ziGybeW_334?<~QL&L-}?l2Hk>&L-Zyf&pN5_S__K?z0I$rA4z3*(Hf*XY`KFA=D&^ zM=ue+lY49=iAyhHu@({nK3HPHxtY-Fv)&1!HiL{ z1M^l+H8SU@*p2}e41md~*oOI4byHe|&erc}_DwNn#6-GLQJvh18HFJn8W#%< z$zIG^spm9Zhs;ZE!GLN8z-+0L>|qvRzM4v&XI6yCf~_{$jS*$~O2In-zmvnr#Buqz>)|kXm9?q#^Kvh0A7OEn=|h z>>_aD*I$JU&P=-qj9Y*)m~K)-@-$p?*dx}hOkff)1|8lbJ{1FCfuRGy#54|RIMtdw z1@prmv5p@KFqt%XkN9K^f)3V!pb+*(hY+eurhekfFy;)Jg#?FW>LC%p+akiZQUf|Q)Ut05)+R}!TbUlm+*XYy zNs61H5Ma)l{n?Zx*=}J*A=!2ko025)%>c`>zgm~D_e*oX|JLF#NE_eOa6?fg>+TsekoX#IPKj$2Eb~ulNulqlR zuJS$WyVAGGSLglMd(?ZkcaL`gT8m~l{_L1=9Cq|NBK8mM6Y$FeTkH+Ck8DS6ci48= zBEsK==ipZayM>S-@IT}q;V4KK=IhLPQCm|;fYnQjdXC&_sN!)aj6X*fyd z6HJf~4P9au0v)TKB+){V@B@sQ`lJiEQC*ieOp*YhQqKvVnLTW4C$$(sCz|PV8zxDN zV2}>=V2{>$lO#~6)>j7rCR3tr@-#KVG1i9>a?hJQ6>}TpLvu}Lc4+bxj0oy$1e+gb zZ#kd_?_DNoRrJfU-Yo>iIH(n>2xdd*QB)Rdb^b7}Js{K|~J6L)q zz*PGr)ozx)0Z<>N_DQ~7wVoTAYpQ*cZWq)eARWO>`>m5C?XFD^fsi-XuN+1vNgiHA zcr~-*Ajr-h(@&C=ys#bzVmbJ6v?p+ zqj0l8ksQb{3I}#pph%8l7?lV$&)kMSRx>#VkGvA$dpY~2dU7^qEn=|hwgjps%Q0u6 zo)eD9XZB%eau#L`5=P3aWyxZwnmmCi8=986=~_Ekh8fHBl>m(y!~EbR$&fE)FdO== zc9P`BvjiJA?}C#gMV=+t&~FWsBqzR7UkURR+)0v^SHS?VH>@W~I-a3lKqZ;OqGpoh z-<25OlNx4h^(4u;D`K!3MunDTr+Xg_IfR*`V(ui#vYSmrQlkRaa;*1NRg)yqPJO9M zu|umeM?`3nB-sV0XptB$E6L@neYw4 zF6lI>O^S$Llj@~vX|_}<6^c(ulH`_b{(t!27r*TPi~slVn}Waa|4e+?|3m+G{YS;m z`X~I)`=1d%F^AagVrD?1O!bP2w6j z-LOb(7w5xQ4d#hKu|g~pi^StZFMQ+R7@T_eo9~al-}!#!`?>GOzE^zT_9fvL4ZaE| zA)fGk$@h8ReZHH0*ZHpS$-awxdwoN`eqXQe9N&g;!?rCKw2zGRjgD+yb6{}vz~(jm zTl;qQ_wMZ6(KFoBJK8rqvUzpi$k5*5-oBB|%lk%l!2ee69o^Osi1yt>y*&d5c8~M{ zWuRw2$jJDS^o%dgkwJt}e5} z8IL~I3L8q2=ZdKcpM&i%6{2ShpDd5`74BX)INUeT*E7<$wYzg@aI|l5)ZB5b>Dje+ zxTk+Z&+u^n5O|mz<;Zh=X4TCYJeguL9({_{HIyUI^_o>TW9Vd7H{;Q#SY1Oo@?4Ku zbu$J|W_2?jeTvmJlq1)=Q`Oys$8OiM^((ZOC>hQr%cK8Mb-M=k^$pS^*Q^4#6uH)A zR@n^4l3Ce|N1s|{4W-DnPP5ADtpe5Nj7OhZWeugswaBcp851&7vl)+Am4)R*^<6f& zR^7P^u9bJf3PU*Y&UUy~+*t?L*>@Jgwfv4t;5zG$?QlKej#Y3iyQ2-RC3jT7wea>R zTublp!L|7Iy>KnMy&JB_-@XK{1-G9F*TC(^!PR!#LAVOH^+A5aKW|$B*MHpB0@sgk zn+?~GZu7$R!&^ZD|6jL)1pfV7K?48xTO)A&&s)pj`rfThxc=>yJ#hW&EoZ~^-CMfg z`mI~$!FBSMVz?%65#XA*c>u1@-n<^J&)j@ET%W$V7Oqd-TmaW64?|7(Cl2G9JboD0 zj!*%SYM!0UjaTZ)xT(=sor(c6hY`f|r zxHeza3fIV$xc&`S+Tj|!Vme$;yc{&ZmmR`2pB_5}uG5sQa1|9?mP?)s*KIe#8(zNe z1}tam4Y*dlH>`x~mK#9Ne9sM_Xa2k!Fi-dO`{8=-^*wMs=lZ2^-F!XhpFjJ0T&uIL zcf)nlbt7<9t~&>=%ddmpY9S_$f*Y1St;%nEzbCmX7tp^}ra`{EV^ra4i|Dglq8_ zZc9<@Lbx6u!@W}&!?i7lVXX#YC2&11=78%3$`D*7Wer^Y3fAg=r4Ft>1xxVCxPSM_ z+u-Vvu~ywO?j5I$>wsjeRR``mJ8p@s3ob$fT=*jBd5)WgFZsW`2J#xnYap+Iyaw_b z$ZH_4fxHIt8pvxPuYtS<@*4P8)qp5H#0C7FcIj>DT6mNHtaPsQ18JdDDAoIq`G4!b z%>T6iZvV^vo$!4?*ksB7kk>$719=Vn|5yXZmD)LX z^_t%P`fdH??F0RNgChkqfK<19Xlvi_V0nG{s-c1Y-oAojOw{=5%U2I=85$j#F&&6) zQyI{}y=L$5zW#lX&vyLr@GQJ|Xn1&N80hQ!2L^ij2S>_}FU0h;^v?c${R90ygCj*n zK#wf!8652yIgkQuht%tlq5}LRqm;9Tc5UhJn;w7%^&}Sw0I77O@U!JZ}p%duyrfRfwuz&lG(UC$2Ca>xr?iuX^@tr-pM{&c7 zZ9tA@)KW_bm%hu1P6?hCv=0nOKjR7!7O-e&%RoQY??NmU+6jZu;V$&zXK6LB85-Ey z56=n(OkUr=vwv_q)g*^BjjQ$l9gxBd=|kx~=}*#I(yygAq}QZZrAg_C^rZBt^pJGF zbeD9CbiH(?v`^YCoiA;LeS(eBYWQBjLg{qrB&kVikZPnk(oD%C*`?>CgOVa054rw- zhhGyM_dn-A%~5tN(ic6|k#tz&{Lo3S0f>z`nvt|6=&oz)AiH`~pFx{{(-L zf12Oz7a))SJ@Jp?Z^d7TKNY_(z9c5a7sO}8$Ha%l`^7uqs|44GW02dwPaG0=h&|$2 zklDXX>=I8ETf`9L_0JJY#p$9bBFO6h!1ov5JHFre-hiC`@A;1U;=Zr>o`ih<2YvUz zcMorXZxmeW+vnTm+v+>px7xSFce<~|*Wj!4&GZ%cJU-t0f%nhe-+KSe`y=mnyb15u zypMYy_TKBg6@CRV=DiTUYOurG?OpF(?p@%W?``x3z2)8_uixwNeC+v~=N-?lJU{ik z;`x^68=j{@b z!*4PC)%CXPm#&|jn5F#xJ@)>$(HJ&v3cxV%Ml^Cw!-2lWUc0k?T}f)HT;t z;hNz(&gF6*bN(H^-T0>S=guEEzwL}WzY4$O@OkIm&YPWAJ7wnu&LQVE=Q+-`&ZY2e zhc;)(S?xT*S?KgRZRkVv7xWhT1$qsA7fqt)(Ua&4=zerNx*i=u2hj*RAN8P(XeC+* zzXZ{Q>d+iif~LV2A^++4Psbk|zj3_o_`c&s$GGEJ$Cn)sIz9v6g}BObnPb0W(9!4E z>{#PC!_n?&b-Hz?kJ#_C-)6tgK4!nj zJ`CTMJkP$tzQW#RKiM9!*V<>>i|vvf+5TaB55740YunFkufn$`j@X{DJ!*Tvc9-oY z+m-OkllyGDY+K=5l&ft^Y^U2=Yz;O@(9!--%mb50;IBq8H@UeA#a!g(N)*FWT;Q)j zF+3*){&EzT~p_rZAjG-8w*a9CzF+2$cUO_RQ+{h@#k(8Ai$;a_p1>&eY} zq^u)1>yWaR+^j{)8gjD+DXYoNYNVV=Zq7u?Dsr<5DJ#j%N~EkHH!F~`oZKu&$})1Z z3@J;=%~GVCL2k}K$`W$31SyNj&0?f1A~%bWvXI;?L`oOA=|ai^akee2yG?SZVq(sS06e&&QrU@w#auY#HBe`irN|@Y)krE;|A*9SBH}jCvKyDh4 zQcrH`kusOu%tcBaxv4`+ExD;hN|4+Hky1l$YLHS*ZmN+|MQ*B)Qb}$qk#ZurIT0xp zjY$_eD=1f-Oan=+)#BsVjWf+HD$FGUKDUj%*z zQcB282~u$IBJjmXDIzyTNWsyGz#oqk9F7QlAyRNGBkfx)`@<{-Ll8OD{{tL;({%{{4nb;rheIyh6!~Gq}#Qt#qiDY7bxc87u z><{-hBoq6?{T0c?{&0UmGO<70yGSPXhx;>NGA4&`#qA0 z{o&q0GO<70+ejw%hkFaj#Qt!<{-JNGA4&dlSjT{&2rRGO<70uaQjb z5BDo16Z^yc63N8=aKAt@u|M3uBbnGA?%$A1><{+_l8OD{evV{ff4J9?OzaQ$Gb9uH z!~GP=#QtzUK{ByF+-pcC_J{j1l8OD{euQLVf4Cnanb;rh2S_INhx8j^|q;hsY>u|M2bkxc9l_bif${o$TLGO<70(?}-v zhkFXi#QtzkBAM79?g=Cl`@=nsWMY4~uOOM&<{+^Boq6?J%VInf4GN{OzaQ$5R!@g;XaRKVt=>?kxc9l_W+WK{oy``WMY4~ z&mx)FAMSo66Z^y6hh$=ZxO<@Pjl8OD{?nW}PKip@KOzaPL7m|tn;qF8-u|M1$ zNGA4&yB*2I{&2S;nb;rhRwNVq!`*^pVt=@skxc9lcNodU{%|)Tnb;rhMkEva!`*;n zVt=^nkxc9lcO8<6{o$@fGO<70HAp7*hr1fd#QtzsK}s<;P2818CiaKB0)E_^P%cL@ zu|M1)Boq6?jUk!XA1;PuVt+UV$;AF}GLnh?;VyGv^TS{2z{ZEa#DPr@f3X7_9{!*M zn;rfl2R1tVg$`_T_yZ1XaQF)x*xc~@9oX3L`yANR@OvHD(D0)UY-aco2R1VNumhVI zevbni7=E_{n-_k_fsG44=)k6h-{ruDg&%NWv%>FmV57pH@4zO7?{{E>!tZckbHZb6``#_c^d3;kP=l8R2^!*og339N2{LJq~O@`12gteDK{4Y&`gL9oTg6=Qyz8 z;5R$4+2GH1V57mG<-jI`-{imsgWu@D=7Qhgz{Y}K@4%*lU+2Jvf?w;vW`bYiz(#^! z?Z762KhuE?1i#9G%>%#EfsF&d!huZ#zubWh1Ha6H%>uvFfsF!xh69@feu)Dc1b(sO z|6%Vxz1RDmGIDW9T6q13%~iy0N97>l6*nTtXS6ckVa0SAa0Hd6s6 zk&Y1+iKZP0CI*dPOq+C?B*r9UXgeCsV5dz?OdJvuV|-#7yY>68b?#n!{r9`xeTRKs zs61c%o`>}F{cr96@2tIscMbbpt~+R*+;yEn>!hyh3R)+2T}RM5q3gPV*704}3AB#u zx-Ou#wd*>7*0EjJ{97;Xy2jr+rt6x1>*%g)_^lUpU9)e!ujhoc%mmbwt-S_SWHD*VJ2wbzMVm9g6&L_&E@>}QdfBr4MWrY9p zyZ?L*{`<54^h4`^KkNO2JH-FG|GPK-d*9!?&j8->Rri6%Pkq__|9|_J+$RA)`4`W? zfB(~;yN@^S{S)^g!P`FnEd2M!KYJYh`_|96r``RBPs4wA|K3UX?;XE$J^p*!r+*m# zz2P@c#ec8=Z|=i@tH0|$MY!>QyT5F@shXhxB(4jy29mjL!e|FEm-~mu&y?434KmT2u@!#{_{zm-w+@D;;f6w^| z_ld~aZ*~9nC3iXgv+i)8VVrr}tULd|U-p@7{RN$W>>M-m6YVdx7g}%0KC|vYd_{l4 z+}lTgHJYEjdHB1-eFvBIAMSmxx2^jQ{F6QOfBF1ygs&Rhhw(cGgYKUHUEBPihL^r9 z;}5V%N_~K};%`XnzQYqP`Fy{Imp(3IUXsjsg-br)tKp@u*qE0jGhX46&v$Eh>626D zCCQ9exFDpe;iYd*nU^FpUg45IcV?6ghpvA(Z7>89C2NXu#MDSt+7+exIOn=6UVar) zer$W)Yp_u5KGfEn-Q)AcrvP)3-(xV~3?Ew-)$9l?t%-AmDM_SLzPO)?yhsU5@Y|#7 zR!Oo%W{62CKUqhn6ef&Jk}0xq$`|+5ktvA@Ba>u`ES&PieRSmNm*!E$AjuS2IOU5^ z(vfLQ_9Q_uOs%1RIL@>f9Ul{4YRD~Fr zBtu}~lP}Ebz*K=4m?T4B;gcWGMqum%&FzyqeDaycoxW>wS2zB8l8x}>GZ(i2Sd*&2 ztBN!yhXZ`5S@(Q5|9?t$M7I8{bw4xy*7(@Ddokl*oV{iEN674d9d?5E>RsCXSU2mu zWaj5uxIM!z->T4mbGB zM+$&*$v4gGxHSH|`cpoLBr{y$l5g6ipAxFnh33YUD-K{_st`;1GH8Ln{2H$7j+ zrM{AJNixF~F8QYC>A2KWGA>DGxWXmhbfAt){Uqa(WQHqT^7)Mg?#`$qo7}TP@1np> zNX>D>iLua=DK`210Xi?e4CW=tj#t>^^BZ(tdK=73k{z$G$>*P2;VrKU<5dsvYEmQK z$+5uVOrWa|bvF6@b5vel@}LK?WX3CP^7;LBURv*9UXtv1g-t&HY@L@DJD8UwJ6>Uv z&p%7&r9gvuNwVV=Hu?Pjqw`Xv!Mr5d@d}%K{)cs53N@IQBs*SVlg~d>=dF%!Wk<6} zk{z$G$>*P;^U~}g@5VQcz}e*UPt|$pZSaFgvf~vt`TP&*y!1Ahmn1u0VKbTkzb#w; zl6CJN|I7Gz?D+r9=#bglaPs_lgCFgGp??t0^ZY5!SKNkk)0^A7TYuR)0vDKC{V(5e zVo`k9pmWtT+9#vVtwvf?@zw6ok+ZLs8&1$UsZ(Q4lBUlo9-nVGUgxCB%bX-lpHnSX$i%U|H3`oWE^NmN>kcKE+l9FUVDxRNjd{GT) zh`%K%Nd~0i`T52d){urFLXwhXKq{V}Z+t-wX&59VDM<#T;`#Z;qiRUQFd<1vG9VSt z&o>@fLmCDONlKCdsd#=qe?&2sE-h)Ef68emE4lqOX-%NT-pu4H)8cDd7vk61^^M~oYp)E>YlI(beO+J69&Kp{!q9hv>YaT}ob( z?0AJuK7X*z8(OF2CCQFg*yNkG6ue^Zwu~c}c+1UDmKyQa?A=P2eAA+eTLzN?mnAD) z>5^~StmB4=QsRn~jQv2}y-rE{O0+bjF0?8T#9vkwpd@9@;YJMmTc zmfl;sf6)D*&J{BsZ~vfuX6t=n`k&8lFGfXo;C=>OeRQV@no4<1V~te(xvM(+Qg?uz z0Gvxce|ilsnu^9tk{PdX$>%RFY7@qCSG>_0E&aM0sfxRzb0o!BUbh{!NCcDe-Kq1^ zuVY@4?0AJuzIai=d)cIX%Oj|+E28S4NsV~RbRQ^jdHEwl_#$51p(4BPNI_=F5?MOs zix=w1=#n&Kl1!0>Q@(hCj*RKHhD?$vvT({5&)1PL@79n>GDQ|n`QmvxG6HW6nIuzW z;gm0)t0N=!){sduMHWu^;yF4p!fy?kBvWMJlrNsGBh#pZair{*<$z>%DK9~|!pRq3 zq9fD5!^k9=ma=fl7tSh>anjmF7koOIDuyOikyjPG)!$$#tHr{ZIxxKv{w*XK0t=sf z;S3#^-UkDdWC$#L@(rgIz+wZA=Vkyd_vTot0;PkIy%ptaFCV1<6U$^f|@j^9?8I zoV29K@13OSbBf1L=KmMU^Z%b6?mxJp|LOjdd#~vJm+qjmW9H{(viA9{kF?s^g<<}$ z{y*}KHxv_Xw^8cGmU5$XF+^2zxtyd%1(4h*Wo!5ReB<>sq#>A+q$C-Tis$DWUt2>O z21`jwk^!lBe!lU#8qzRIN>Y*xNX7H>jn~$YhT&0?l4L+Co}X{Jrsz?y)aHY=@SzH? z5}>W|vTYg1tqHVP3R-5_mR<5quTgP%g@ABbvci=v`KDLvxU@RJxFnh33YUD-t8`pi z8DLzJ%y5NEzUgWmmsSNBmn1V>;gWBC zpIb*~cdOI>CPFJjF_#U79TZQrt`F`*Pdx7Iv$5ppkAZ1Yqmo-@E7pA;Q$jeWd@;}G zbEFh2Qw}=r=mZ4DyYipZNLB7tEuz<*fFOV+=0QLuk|DA1L0|LHf_TTI$B0@U{Xh_FQX}HJmPY_^K~F)+5-U9g{rR52`^J1j zjwCjd8iBnax8hVT{BvYnBUQ_HMLorGdqI_@rVV*Z1?7;KKv|kPsC+z1G}A#T7G_YA zrVlC}pKth4os(i<<|JwQoZ|8MhPUXP6#FtKNz>;PkIy%}S?8pfmpMtAKBstmzTr(e zC&jwVNz(K=#pCl0KcaI|jLV!PO`lUdKHqS&&WRqs?8lgsr0H{t$LAYv(m65kYMdlZ zpHnFgQq3k_<@2^Ye{2){utbL6VYWKq{U;&c2cDlO3LQPMx_gJG}kZ$o_xx z`qS6FYy6e*A#=BmK0A8W?6t#3hU3A-{h#kW);_8AF8qUUVB#AxNXkhhx@(%=M3Z%r z*7W;UI*Alco$qJ&4wu5&9exTKwoeyPEJR#xpR&}5xUzkUGK^ERRwm-8QbZJ$AxVvh zmYawRCoqTHtn$5AOEF?5$&^_*fjOjSmCOi%v~niNlvy}|IV3!l%(M=Lz#%GUl1!O} z6PR)N#$>uEnXA*=h?yi)X5oZ8Q2tNRC+u`Bu-vh6Lps$AO=?8E+~!kB;B0{VeFfKz z>*XKQFJZ|HSK8oC*-XR5;I844WQU9Om^gLQp8xg%9OZ8EtDt3_l3fiDHUN&YH&uaYG-P0s?0|(0fWu88*goev%%KYdi&1jT-$~T&!ITpkhSKB$+Y`r*Y>U+1@jUWix-<|KI&ndhhOjy?fNmVN16GoH%#?=$}R> z%)T49(I4M=(#)&cpKd?1_4@38G}-1i{{7?Y&wV~WQE^DqsQ0v*OAX;ql{raWY^##ww<&!QD0 z;;WHXWqI-TD{iKoCfs6ZPwxET z1K50Hj_Z0RM*!Wf0;+h^6HS`w}l_UdH z@qD1-iXIg;bQKbnBm-3Oe4rj!gBp4XiAs_Is(3z7aW#)xs-c6Bs3aMnisu6rxALf{ zA-<8QBpINJ=cC&X7xIX1pQqu}?X$Ed(iMcR(gnQXLLR}(6D#6n$%y~Vyd#a~3V}2^8c%+NlNynx z=L%%)o{us`PWe!#T~Vfop-fLNK6>IGT}q8ewKC<$qf9BKyd&i@o&0^WOiQT|samG| ze3U72%7-%LMPLpvsJK~bM4Bp7`FNBmZlzVD#xPXNG9{@IX}V0s^D!vDy;zXjLzdO? znvsxSdCeS`(Q9U@QQ@UtvwS>2Lq2|dM#J@SF%CN(P7xWNp`@(2EgHt1X;pGlu<0&M?C{ccEG|0oo~1-L3F-6e4~WR&X=V|z{_;L(h1Dr z;sn9WBRDa$WXUX@z`U)f${ab_mTlvy~9dl~ZoJta%;{txzQJ*B^^_i*?0&bwy5 zGPBrzQ|r;zzS*TK*`zQ2hSK^C#1B6bJN04Lu&jG-VZ4;A%Y>cq9?{0b{RM7!)^YPO zg2_Kgo-in-D)-cOztP6o15m_w75D_`%Ad&^xk4%2F+D({NMk-Aep?Cc&7P~3*2 zfO2d`pe#)tR6ZV{xC}=FrGShov}21P`S#nArIHzNKjg1;1VTi`k>AjGCR zON~g?{r^cJIcxWPpyG-f4YeF11S(6@N0rYX50AqB{}I{f??wj??&yEE|E%7%-AB6P z&c!o7-+rup3iADZH9KPV*5T(SIRS=$Jv<8kB;RyvNKl5j#)XZ%)kopECaviQ7SqjT zw)#o{|3>C-4av!{X6Jazg*jJ2%0I7>8u8Yx<}<+(a7fcHfZc0UfLSsFmNxnPtszIh z1g6y-D&Z+E^wgEGv;lBP(Jz4!bZ8|^l3fW48vut4{Suf~SGa^pvI7=207l09N#rYm zX=#OlNwNbLHUP$D9vU#Mt1vK0cEG|0z#&DyEa5QcU0QJ{dpviQNm;$^fQ1c!L#loW z9A={um?S%3VFTchvR?wzatc=olI(zm4Hlt7?tZb@$Kwou%LR9q8Ue3hvxh4mm_r_a z!OTMqF|%aJES=`=&)!|;BX9vl8H~D*=_bEWMtCHx3AtD&Nd}{fTM(Lse77<*qZSG1 zC^RE!O=K$x&4dehLoR8_OAV5FNiyRVE~u>GG6z{%tAS40z+?on=A4VmG%)D|=5Vot zWTr@i8yHEA%6K_u;e=$j=NHFsc2p)96l!p-AgK{?-2_9pfc8R-mf{SiCCQ97azSeg zIqGCtG(Iou9-{RS%C2m#^=s`c=Y|zIkOK9e=t0M@C%*AnY-J6-hN)|rtEi% zz5PAt|Mt%*n%`wZlx)=RV#Gb_q~o`x4jGWtsL+?|-h>k>%JU22mpWp;wvLE3sY<-6 zZMS7_v?~#u4|t!a@nVcD|CoOYNrt?_2fPPry!0}dm!!tL`Nmt3J-A#5tb~anwvb^W zNmY(jZKtKfMDcu-S4g-jJ1!cXU5S-fVh^^ggLj?$Vm_-HP*&$T`maHm(bOCQj!z_4tzDB$(S@B92@P;hRlD9f4S>Lqa#JSN^K-9dj~O+vebw)Ig-lf z0~OhJHPo_W5U4CoA5}gdsJH_~MGbv|L?y`pRXiW4xcx*$4e^0QCCLC)JRhjI_e4bv zb6kl^k^!oCK2UMviHaJgw-S{k161*RpyI9*6*bIkB`Qe=+V)>vzHD(GWg!$)c(7BU+W#wy|eR$&U0sOXn(4`ck9yZ zqfh9pzxA?WIcVo#=;qDku9oYHX&$OcYbw}cmQuIN%mmH``$x!2S8OR(fL({I0JCHU zENuXcymSTdfJ@k|ENj3d*#Qe103#Ws28_;G118B1Sl9qKB+|o{Vx@%9MQgw$*#Qe1 z03)HER>J70HDHqLfQ1c!Ls~sq!sxCwV3O>Bg$;m_UQa7wblMs)Np`@(2EZZ7o-AQZ zGc;h5?0|(0fJ3@C35@B6227G2u&@DeNE^2_(w(&RjB|ILcE-u)`WYtyYf>ZNlP;NF>9lLEdgYZj`m~#MHUJLk<0LS>5RBTZyGe;l9%#tOubOLioGAEfS0AXg5Oqqof zm_xof$xJZ_Gm~V>ES$g`QqM_d3PYHgBvWSL1ZHHRn~cOZw$}F75qoe)#|M5SMkDdLo;r|>y ze{ggE_xn%lUETfF?ri6xnV-W~0H?Ozoqa7kV(x9DFX20Zqw!BLcE$;a+)#A>DW{#h z>jL*NzgrKd=tPqm{nYcXdev3eyz+v}uD|}OYp?gwNu3RV<4idfU@8{=EhO0i3mX8( znQ|(?6dN!wNp`@(2K!rQ6ty4wTMoF~#Nxo9Mrs6Hb7G4DoC|nEq8!1?K>_iyWW_68 zz#H=9NL~sEn3p6oUf}}XkS0g+QZT^0B$@FF7x0EGIg*zG0p=yij90jTH)P0>yc7g5 zFG*&+!Uen`JC5X~0DyT(GUF94;0^gVC2w_zE4w-#{mgg?z`1}oq}Y?ZG`?{8l4Qm! zT)-Q02uofXUYM68GhX3>0XgIkURpu&Fa7va&Ocp-Jet&;_xP(`f7Pq6TDk|N&IZ6C zd9Vbg_fZt^V0s}8Op+b2uvz#1>_3-h&|JjB-+)YlV7bc|9^|Ao z@fK%fl1CEU=O+_ulxUoZwGu>97Y+C*ekN&6gvEAQZI~`>032sxtpHOW&A=qt0Sg-d zhnu~`x-tiy0N&#^B&)kmd*Fs7zO1;UILN!RQX#1RaD^bru0jYKY>t0a!=>88xFp%( z3Y&4~6FC3BBkOefSM@&G>vu1n*->-;|BLN|T5rn!`xANspw7I%-Iaao_|x(ovu%`c zl(X;9U0W8FP$fDD!H8Dc7*|A5rCo!Tu?0DErl^rG+2!a zG-*wwE2;uSuvBNy*MVsPeb%=}pf63(#<$QkH1w zh9oFS(+3rgM_+oG-j|jWEzy^<)QB`W*_O`->ZLkrxv(!#S(-kod_GWj)u4t>Ornxx zfGVC3)JtkmL-!?7Niskc&j;#DYfwWtBT-2*Ko!pi>cusvVRkD~Niskc&j;$x8q_ee zm8c{cpo-@M^`aWoFnUT$k7FfBe<)p>z4@Goz=@UOxQj z;IYAp{d;@=vv)xEwVhw<%+6fcez5hOx(RqwEnm15X?k~JUs%1B| zS-fxoG4lKB#E0p`B$*Klmwe$ipGeLvli=W^FXHGtCaqH-xYML6@QS9UMYLagwv-5* z4TyavIfa;(DwvogJ7Qr2VxLM*A*R&|CML;_SlEEr=aN&1X<3AcNwOmrHu;v@d@?yl zjI(&Y9@BwXUhvbTM#Re>h>ake6QF%UximCFwCL|q%q28SmeA5E-*T%@DyKjnsY8=w z3N4%f?X$`$&`0RdB$+}BCqVn`VhS{kK3qLWGKCgSfcELd6lfZN7@8zgXyF8Ce`AgU zO=A#4lVl1loB-{w%<<5}YL|zjCu;9Ok}0%s0<^y~M=5CD9|(* zF*Hf0(84L-e5=1T$3eezX+(^YM^VECv?f)dR~0dUO_q^KGDH?WK*kkpDl#=#MkdJ+S@;0iU!J4X zWooXBOp+n8@R@x7|I}>#8S5Sxe`9>)+?}J(kM^IvZurP>Zg5fmq29mtPU!w*=dU^o zGjD4De*3AdE3^O7bdEoje?Q3s;7WSO(iE1CVDdPqN!5~G)fBeov^fvN&Ly9}4e3jk zjwVQ8s!FbEl=;<2G6NPa07ep%0(cT>L{wCf7?>n8VBv!KD^i(EfU&{mXM-Mia;T9a z?E*L8gZDIBs*eZ17e>aTOp7 z72o-HE}QvS`v7Mpo9L zqlqI)jecm|{9CvH*eAMGfay)*%|yT?nE?wI03+e;WEzktVS14aOp+O}Z~-vV-m1XV z=QA)#X28OwcVpH8^!_?D&h|w?EkUzn1ub0w{A?YVV_E`c$qHDy0NCg3RvI3Kv_Y12?LX423&PPl|arcy%N(8WMGoafQ3tb zz-`Yjs>Er-NrWGLW*4g9D3FE!JbBPqrx3M5$`hnox`Lowc9+6M-+?h1)g;;-$61 z2#aD(CML;_SlFP94+z9d6QGEgf=wnS$&OgqfOtaV3O+boZ{AH>^Kx-F@RP zk2lS|Vf3ldcy{OT!-Ma3j-0ux{b%h1TW`!Boyz|G)F0BnxA@w7rw=Wny9&)Zx7+}6vp(Y0q(;2U?dFsOOS~s(yl&E0{xy2Ll9wejUTK5! zJyGSwoKNE=$&MGNz+TFoSxUYRY`)Fsk#*2G z_cm!|TeqLRl=YM9IH04`g(Ov>S2c61KV2w%1{Y=@E~>$0)l#PTnM;|ZD)5TJ%OVh3 zu9TOYP$7KIX{ACC&l8L~nVS0wvE??ObXtL?x53aPnU=3`$~WKUvra3um}))OVv?%R zQ>?|p2gp9@w1Ql%98tp~$q-riV0eFD(eNhYakM={KM-ZCNmbxgHN4uL8w6_p4i;CU z_yo@P3>w7~0!T&V$^pdw5*CG+UH}u5WLKoZ2E_gr7KNA^CKHonM=Wg63BRBS-{q(* z!m@HyW~mYJGUJ7G0<^!1#TB!J=Ew-eTtc&C2`!xf?XP1|peYJtXp&5!g%hCtl`IN0 z_8iN2iJ?g{g%(bL_Sdo~&{&Gmph+@?7EXZnSF=zOCD`{v)*Czw`w_f39~?_rslk>zq7uU;A&{hvEDq`aDCG%X7-aku?%CqkMOB)dT zTPo7TJW(WKmduEy4T$|c6$&xU5}BAJJ7Qr2Vt-SGLQGL36O&{|ENnpRuc}apDWGFw zlI)0u4Tz5`mWqnet!#OV6wxs;Np{4-2E|Kqc79RAMW^6sy9=Q|559u5>|-KtlG((ay`}+=F?@FErSj`miKtpL5lPb{x_B8Ev@0Y;pNtNP zN=j7jjhB^_q(;EYo*OFPqVvHr#YYQdL_F0pu670XZ@p5+1hDW5)Cr%*U8@uH=lr%v zYE;BjOY3?4%9T&&t`SqW!Neq)5epZ5tAJGLlUj_c5`6r~A0(73T>#dkD)5T>ts;Ju zS7J=QRVba^<53$fDoBgDX>`<>=CUBwq&1Ni;p1}W{{=BFOPZ8zf|%yAOiYp;v9LiI z<8B|7nC7xfOp+b3umQ2Z;>WePL>Z$WDBlSalVnFMY(VVq_)&<_LN#KN?1+U8i2Wr$ z3NeN=jhG}mVqr6GotHg1`#_dD^N-yBZ|{A%x4HY~&L4E1I`hi*C$bN;XQsXVz3lT) zs3CnUDy|=k%cV9q87;?dR9sDJRH(}>a+d_o20!WHB4XU>d3hV5{A=)PQX^h{lVh@t zP!jmy;pV6-+v9ot02gxe${OM33FYsj8o^Sd60WNe(gt-nB<4*JW4THrCdrOi*nl|X z=ITS%Lm(VO(LQ5w=UtI%D(FjA6WC|^u0DV;r zGzBCKO_C|Ja02v|HP953Ff>V~(83AOudIQlu!NyWGKCgSfPO^{G({#1O_C|Ja2mJn z$Nc~3neq0y_l&+VI%@W=;h$z-A3kSreg8N6d-Zm8f1&fe&M7nR#OeP-vZL3ZzwU#` zf^z@*vs!LXGC%NkBy*i4oN;^VK2+g7^~o@r+*2>5HT~pbO;p`e=jZ41x3`M7gA)to zEO(NzklrTVPP8FJ(wb0**JyQt^^hx*e7YHoK=<%|*|9dLWNmj!2qd}zrBg39`dil9l=f}P4)q0-qs-rfJV zUv^K{dQo=I`t9rPAAfax@Z6h6kB;`4y##sxzB71n|DN6#de7>0QE&&o|kan z7ZR{0Re@JjFN;Nx+KqD}a5f-*ZV`MTQIjW*_BQC9pe1QiBjV*YYRWQOB93x^3SxRE zOiYp;v9LiI?_X2K^iG(VBs*eZlW)2G*#$8+YJ9CIH#W9ZYlS8?B3^Ezh9G>!*m8Tg z2_XSZuLZ>%L6c+(Eu2u&;i8uWG`$&yCdm|9H~~6b_L6|ciLtWDGBio1(83AO;ldXQ z?I!*TG)tDy(h1Pv(w77@CjS~VNv6=k3DDt&j|4Op05oWlOreDnpu;U631}<=XwW2? zLJKEAhf9PL&{+1?ph+@?7EXW;7YQezv2>w9lVl1loB$o}5>7zVU_@P>`!cfpJ*LpY z3DDs>;RG}dMhs1oDYS3`bhuGC0ZoGuLz83*Eu8Yrw}(rG@d=g>n4<5j=*<9Hld90G znp@R>f<*|<2gu=8;RG_h7e*$@5Lx&DIb188K&H3C$Rrse3!lmS|JT~>A6|btX8&Is zA3k^c=yRiI&0aJ7wc+gG!v4?p{Zu1Z~sy2HQBEjO#avONGx)P1hZHd znpEnLIM40vlpUKZZbhmV_o`;I%WN){0KQ7k-yZVIN??wz2$&@+VCjOHVSLMpFX3oW zfEoaRHK`GB?Ro(bEERFchMOp2iUqldNoqt~QzsUM3o3EQgqr}SIFNx!G6NPa01jDj z6TlP$GB8PIz`_Np#nBqSMCdmv~xBxh0zfAyB?8m?)nE?wI0Ef)C31Ax98JHw9 zVBrGbaQ#LCn0gfkCdmv~xBxg@50L<-VV!|VG6NPa7&*e#5ZDSU$L6p@R}PH@a6)Ph zT(fys5;z+WhkGFs#Pmv-m?S%5VFTjL#VTlmnBEB!lVnFMY(N}tkSU1Epg}}zn$(E6 zE}me5rCNbI6~m`3)d;A%DpwNAU~0`-OzViH4ayi-nX1GTfS^`H#3Y%OaUuj-xE)uS zs>Bq5FfmDX#KHz;9PX`@_1GOiE&CQGCdrOi*nk-KSE^-9F$fcrWJfG)KpfvZ`TxG{tor@`g~JE2_kUdf-rkpbo4Pl5 z9_{Qmb9wvY?W}c1_Q0AZ>udT){wsslB%8u;ojaZq9RR}Uawv|cguHT^)TliDTuzH2 zh``yP2DtAch`6i)Zge4HO=?73H(D^k5^+e>hMvrqaf#(d7loK5Gh%6jG7eeV62ut9 zG-8tMh=mP^Lz1=xF-8}Sm?S%5VFTiju`5B0(M2OB$&OgqfEXFDik2tpF-8}Sm?S%5 zVFO}hz*31Zx@g2C*%1pH5F_)PN{rD(BPPj?SlEC#DVv_8Lg$;<2rdBOu z8gV#=Ajytc*nl|7HZ~ch`4|?Ju_iSlUhafeN#JZi9Az65#Pm*3#t|_|cErL4#8I{} zK}_$2iAk~}7B<)=4cW%9OX}l_=tL8>R1j-YBjOdD(5h67Ew_h+V+m+_EeuVPDYS4x zNr#+c321sV3{8?Lv~U7+$Z(y2t_I3c^&rUFEOreDnpu?4D322H}8JZ+hXyF9ta4lK_nnG5FCdm|9IF0-JXZvJ_XS25qKhwLe z`$%`(xp?O1+mE$RX}v4^YIgYWnS)pNf3>(5U~o(Sv;F=1`(ryIq|d>2L^(5`d`wU8 z6F;@wd3TF{+~=-&RdktMR(1h!$exn`rgzD}BsF?Bb-=;}z#(}~0+`+-1CwM1EL;E_ za_1y~Y5K#!B$)vV7XXL6ISF8z{V*^|X28M)z#(T&0=ODdMU9RmGhpEY;E*pT0Zfq$ zmoQ0Yz`_N8UI`PE)Vzo_Vqr5nID1$4L~?!Q6G{B_VcX6)A@zwQNmbre9h^)jR!2$3i4FZ2 z%*i0i7mSkBq$=5}PQNJ`VkSvVWNn?lJtQ`i&5PHji+Aq>3YHoX*9^ka1^q$DYbb#^ z)+S(O{EUCega+jTFF>{(z+Bz*_4PHXx36Osea){7OJvZcVV%hFO4V6OOhS$k`3x@oF4h# zK|KI*oF2JKOz(k9mL$896*eG_(<4`j>4h^fNp{4-2E=iCwGhn31H^#_Mf+(*SabDy)|v++yA5fy`kIiVOlv>xK#%V z(=@43!PgBVOyF$tO?T|A@?tqa<0Z+CSJ;4euYz~scBDBe^Bz=#Vhr*`AKi{bQk8xR zL2-yYO91E6IVJnWVpk2Ro%X0PSvqaMUJo>cn-T0Z9ffTT5{7KvMGryaruETcS#Z0~JnvlG(L*KVYwMOfLMF`wH2Py2!lDu-$)-e?poJ4kI%LyK zKx3||L6c+(Et~)yGHNEEF-_5+Niu~NPJj+sH51S@uyBJT$rM^R0Xk&XOhD7v!q6m{ zLJKEAheYBDXo_$dnj}+b;goN_Bjf|cm+8LC7BtvB31LTksG=WTSg^@`zL>4~d!FAcbty{AGBgG#7+?}J(kM^IvZurP> zu0PkisQXaoUpptvyuJO`?JfAj|M=fjOCX=WBjh5&7Q>`rhC~I6)X%#rqe#^%v!Zah z2<&S1L>Ry~%lSJ(9-;&=_3;c$k{PgYK?#Q(L`;KabCN(0iTasl0X9MDpaYz!o-ByK|B{O1a1LEiki^;lX zbX=X@32KEVH6pG(drt(;27~7V#j?Oo-&2$?o)^i%t4WP`^*Vvl4C$K^?|)C+L|C|E z?_ym$K}?GXT%IHumFKysWsHS8kTW@a-%_msw1U9IB-s%Q8`KJ9A6JQK`GAQ@vLhBY zAP(8b6SblmQ%0?fBs*eZ17chxrj{{{-(1Ed*%1pH5XYBbRqHX0-%L!B9kH+haeN6@ zm6&>JCML;_SlEC#x&%v%ZuCw-9F1-yH6pGZ-GmK@qf4*^F})KeCdrOi*o-^>iuwOd z+4?iry?6Z0@r&l(I{M=1z}eRiKRtZX;L`rX{dVud_Cc+ix({}apSidFzot6*{r~gB zP*srhq}mOLFOxrISr`;R0eLJ<*BLeoHLW?ueKq zGh*R_RnL$h3F~pbh@*8vG+zSNq(;EYu6mXT&IiaLLs9~nUJA-MLMF)&S@-}sq)192 z(_3L=k_?fB4?3QY74ZhngH+pIwPHjynWRR@b#1Tef~JR@PI}X$zvre$(&GmF#{7Ug zLcSp!1MtxX@AcDMT9c~4D_YlF?ifJn>>i&Vcn9(fmB#=)Djx%w{Db5%fKqCNsvZO2 z=c69P8HPM+bi|nEE~o~Yv?kPIwYc^e01^1oUAQC8AX_D-xeF7MWJfG)P{#2cIaOks zyD%|HcErL4#L*o&ll9l=)uRU}YdjN^WJfG)KpfqXBZx7?Xv8Gh5epj-M|b21VvH~v zF-dmB!Uo$2;f@@+jlip)s1@bT5=)JUYj&2T3xLD@I1-o_KM9y6D`4pY;BYri0=T+f zSe7s^beaJZfO7$GxECh@OlyK%!X%ji3l{)~J8=@gG}CW#QxiRU+!)0zPa-Uou|&cvi*td1MQi|ebSDu_xK`M z$8x3**2^_Z*N>D_D3qxtH7Zkm)8O1)OyF!#L=T5ej>)Xk?c0Yh?T9z}URTUhY(C1Z z*r0q*sFtq=Rn*zUPia)XexT5{Z!5fhqwcsWarxR^M@=QHNsWl>Y6KHF8h=mP^!?iYYyj!I8Hzp>@j#$`$INWQKAg2DC ziAk~}7B(Ob*TmpjSwBYe{!#hrL99uQh?m=1DhZqoh{HWG31WIDOiYp;v9JMgxF{w; zOz(t=NwOmrHaOZHZi>OtZeJ^+4=HHG0kI}EB38dzDL)LURE#Zmgxg{g&@|{UG)bn= z!U-iEZj4Dl)40RXB$+}BCqRc=V-nCb^e{9@rqIF(&<7XeUjmv&ABHB$6k0d|dP@y7 zbu|o4k}0%s0`y`HH1#$NO_C|Ja2mJn$Nc~3neq0y_l&+VI%@W=;h$z-A3kSreg8N6 zd-Zm8f1&fe&M7nRZ2xWhknHI7=db%9_Db$wf0ob8kF66Vc`dh2e22+fCzHM^xph)X zYx>E>E|0o(!q3Ob%xT5j!OBcIE1#q+q{fc76D`(}v?kPI>!fBmbWymBe~`VK7ZIX0 zedmf^S5$$RIk2Bij#bu%zYX28M)quogb za4|kd`%?5q3gGZr;WRr6ZC{EAT)BYw#2R9HB}`0G^CH%Wg$=rj4;7P)9ed9JDmv?k zH*&p1WoAnb9+5uO5DK*c+VNe}C^=y<@sR*7;)R zz?s*#Kiz&(>(cDu$NdCAWJosx`ic;B37AGvh1H}rl`Bo+wFX86z9uZ(8M1|75xh!_ zaZn>B$&Ogqjfm@xTrh#N0WnhNX~b?Kr4X}ZMl5YWjJ%pE zF=kR4F-dmB!Un`4*c64Qvo#3b1f z3mXu}*}SX7G~zHZNp{4-2EWhF=&yr+2Nq z{}1N?ej~~Z_{IL``p@n^JDb(8|ChnE?wI0Ed*-31Avo8JHw9VBrGbkghrbOam(elVk=gTmT$WRVRRH zTxDRA%z%Xp78gUB>SDnlTHT^XS^!V>bVzCrtS#UQo7vsj`-&Zsmp;kukVH8*@cWKD z{lt^Q^?#aFDPS~JQM4Jv#cs9YJ zj+%){vLhBYS=KsdSeztn`&!KBNGC5od5*M{)&#ulIZ}Q;NY5+!gPqmpM!g3&H-DZfXBf`&q5)vfqfddo=XYB!b5q?(DO7$@-daxijR-!zPU{&2sz5 zZ5))H8-O*bTAC~BtcnTTGCNBQ;hX>+(&Z(fv3a0DlVl1loB$m%<|Ux9fuKQ?WC|^u z03DL%C7>ys6xcB|Nv6=k3D6;dUIMxr zPDZ^4Nv6=k3D6;lUILm194={+OreDnphF_P1ax&^iAtIzQ)uCY_$^%KmWbcz&7h>C z;GLu@^r~Wu`ruvoj9a&3|NnDY|C7-!e|i63uXk?tx$gTr-|8GQ^JDEVwh!C`Cj84F zASMY3FR)ziNBC&sUmf8!srnLDHNw}f2@rv^8N8;vI(=t_cMEl#s5B)nOJ=+i8jWw=*$GcI7H;KpfH!$(p-`+Ab55WJfG)Kpb)pC5Wk4 zXJV4$}C)-wxke`HVmH;hNNlH}Sm!jzY#MS*lpHP=I2Lut=IV7OpA?-*J@X z;#>e6QnKLeW)-*^*+;-6nE?wI0Edh$31F%wT*4%o0SgxZhsziez!U*8FiB>>!Ue$L zc8&xv1%M1pk{PgY0dTlHA^}X}CIgdX1}t0v9PW-t0MoF^z$BRg3l{)~t0NM?G-@(1 zNoK&p1;F9vhy*YVnhZ>m8L)6coDp9fQTD^(TZyvYE`SqKbKsiKC`tln1LFANh$=C) zQYI$Jj#$`$IKDWdN=(g^iAk~}7B(P`FOH}ZQ#)m1lI)0u4T$55BdWyIP??w{J7Qr2 z;^^XtC<2-^FKVewOp+b3u)(5RNbxpVbc@cZQyl`YCN<)%{XS?yfMN|fHj8B;jpYf% zT>8?>l?I4IKJf%GRdpsN$*y394TwWd&;&76btWdsj#$`$I3xv45K~oWVv_8Lg$*K! zI4fw`p@lEl%3%@2T-3mTE=eoS0g6Lj#$`$_*FH; zSS8YkNwOmrHXy#bh8W948Zk+B#KH!|SJe<>{-+U>WJfG)KzwBlu|DQ4l4M6LY(V_V z8e$r8XaINHsAcin5epj-zoLeiMjR$4$&OgqfcT0UVj6Lnm?S%5VFTjJOX8s)^LRtF zeDxsKq(;Qc?Uj}U&IZIUuOX&d#Ka`o5epj-zpRFsY7rBYWJfG)KzvyZG1Vd_CdrOi z*x=07r3Eq0T={y;2dm0j1Y%8UM7)ACS0#jV0`x8&nu8~TX2}v-Isy8U8fc227@8zg zXyF9tm)1a22*uDOnL-OEcmLl$$p6F4yXu zz@1+w;%NPVq(;QG>j%Q7`>WZ5#fgQTzJ#L%QHpL+!kW~Gw|3oji2yYr&h=ca2^1l6 zO(3ZeXKhUoHXx33Jy(foWMyKK?1+U8h~r$(Rbm=hnV2LyVqpW~C=an{ZS+n+9JMx* z8WGpFHemzeXthod(>q~elI)0u4Nf%uThTx4DCf;TQk{PgYK};6k)l-gi;V4_#6%@b;sX1`XDYufq z*?>5{tEWm#t(1vLvLhBY-)nz&{rT+^*L`sO?YVnL z|7-O8+1Cw!V>rUM0Dsk9Y~7OmkPrMCdAtZgSKy}oN;*4vXdEyOQ}k{qAU?b(z=tcec7w8y2jr> ztyz24h20^^d$9o@t@lv3iAthLYeFqjR@E*A5rMNAyzbw}($(&8V@0A|DF)$SxUwQaOr1LulVnFMY(O0DtVj@36v)IR*%1pH5Qj@E62ue+GBHVZ#KH!|;ns=- zF~xyQOp+b3uo)kp-B%1Em-)e>+$+OL03P%-sS$5#8!g|m8wt}VAIM^RZ;#=MHWImT zTnPX=WKK^&AFLN9NmDP(7+N?1IwVg|K+|ZA8XMIBl1!n6Q@(k3$e)hnUcP!z1~0C* znpA~eRgAM-a<2%%SB}lQLjv^#GQAg+bA(KiA+qp6DTfT|31oUJj7*XtvhcyY<)cNv zfdsA9;J4bJMZqsgjgaet---){3)~o^2kZ3bDB>rY*UhSTjnVUq$=>LW*1sY?9$mievE|v`(}@1{Rh{dw(h?1m&cpt-Z1*q zXs_8zh94O`*85KHxbD5#Bb_gGHqG4Jezd*clqTs@dJJktNQ{fn$2YxlGZDuiqYe?} ztVwGs=VEG9x6jA~&StPPni^GkkJ5Qbvg2K{LAge`LPWU|43{fO=A4t29A^XKC|8Ie zK2k4PlI)0u4Tz&$A%ge_otPv$VqpW~kaH~2+78!=NwOmrHXsh!z7xcU>BJ=25epj- zhpgEN;_BcW^=Ks75epj-hm_d~Vj3H{uOP{eSlEC#`}0Gcw%(3H)}%(rwM+4+1t9@BGI;HIfTBP_9I}rm zh^b|Ak&LwRYYuY|yVqG2djgkFcm$ zWnz-1N(`nrL%lCW+P#fB4KQg^Bc^3Gb|V63gM)@4Lp_cVdE)YL9(VH~)}%(n^{0*{ za7a)ufw_w(V3w?ar3*?paF-dmB!Un|gEooI^>H(RUBs*eZGs*wA&m{lfSH=g=-7@;j z=ozzD4?j8V4bJVqzxS=)G2I{Qe6e%j%6H}qdqPZ-9kH-M8HeO131WID zOiYp;v9JO0#l>=LLCgVJ`A$HrNsWk?i`7bkrCPC5Cw6N^<=+!AOJ>B<24#Fv4KWsr zG-8tMh=mP^chnGLwMZi-$&OgqfcU~1VnomyF-dmB!Un__)DR;w)rd*5BNjFwKEH+- zk*P*Zk{z+I0r7b?#MLmU?A>I5vgU*ub-kOk0r9yt#5Ce???#ec84DW_pHo9jBMuXj zWJfG)Kzw#dJPD5ZWDV70O=?73d*~)rk6%(lT&>3uF-dmB!Uko0Rt+)LBGihAm?S%5 zVFThbYlx{9F)>MY#KHz!>1PzgIBDS{`tmr1Tjip9tVxZCS8%4Kgm6xP-mXJ)@PuM6 zp;@womQLf*cX0myi1z6C*`MtHY5#!U>$;!r?$deM%rCZo(B9s9Pxkffh~Zxi4;|by ze(~H-tUq&jBB`aX*0^pFuJONBoN(Ls$3|P1TIOH%- z0Mm?;fk`q07A^n|Da;eVG@)c*lFWdG3xGog^8_#rHVjOX8L)5xa7bXD0H(2qfk`q0 z7B1uOWMomknT(v>>!e#ue?0%PiV|e^&`Hua7#GiN{ymi}&ClnWHX;PJT zRcQ>=uhr3QAxn2_LN*w5D{%NF8XQSBaA)sY6fOWpqGJ^p(VGTLk{PgYL0((GSLWaS zU|1<&v>=U_Br{&&0$#rvndYVU!4;V#Gv2BT>H`wvtM!3?9`ll9#w%RLoo(4(Gxuek zZw}7vw|i%G-#c?(IPHJ?=#Ov~;L71I4YSTMGjBuwzb&m>vp-(z#{J{=@B06#=-zg^ z3LY)NArz$wu1VDwu%gTh#due{0!jqVCO_z|bs8=PM-7)GJ6vG{+_8p>FjT`O$qrZ8 z0C!HqMG>l4OS~Y=AogE}}M{s@3&+$b#c4ag>~g{#A`sbOv5D;lVnINd_e4PFi8_r0L8>484?R0jHB<-+ZuI&T#HF+M69(nv@l$* zqP8#sc)Z!pMn6CRt_1SMyL@t0_x7>V@R^xGgo`w=oOG;$}F6~?C*g{GgH^cx4#V{UCz|~F*8Y~%)$wyhQAQPG0O-IOY{_3M!_3NRpu#1Xu=1?{ziy2 zF-=QQ$`LV1hQz`L#QsW%G%)(YwrnV2L)V&O9$T#N7jZ_WDu zb^Yn<-ZlQp_>j3M!}3RKvjgptZy1E%Pdfl0Ch7B&FJ)kYdHEg3K{ zNp`@(2Eab`c)A;SOw;?;XJ9K*3TY;AI91=>%qfaZr+(2XA6#$&y(*f!SXjlxC*!o0&;6 zWfo53_70r?|F>4_p>;nq{-^OVb3Z=%i_t-|HxGZW%mtYJTla&V?{rR>`Kk6-+$6R8 z>)HC3bnmJ(+Gu7R&lm6B6%I)H9oFMdI%U`7 zkQp^0{DA0CGD(eoK;0oT;R1f2d(`pDRRS6XxWGwj#9Le7!e;&1*;|W9&mS_2%8rvcEG|0!2Y71 zG%&SL1}4c4Sl9sA-@}mxrY6e3B-sHA8vy%jIMTq>Mj4nSJ78f0V4smW4NL(L1CwM2 zENlSmFN}zQ%fOarFaXx1M!tQlE6HDAz+rwfTaz9{dEy(V4AxyFiCd6 z!Un+pwum$^jWY~Pk{z(H0r1m{P(n^4Xq;hSlI(zm4S@Yc5$O`9afX3OvI7=2Zg==$ zZQ?_H3V5Sg07;E_%ZZPS-G$2}|KA`BXa4UTeIC32uSWjA&fu*61HG^H4(;C3`NPiB zXRdDlN_)_{AbW7i8{jK?+$8DWq!tXH!mk>Y=8&x?Z9TsDW~uCY-PyTPYE-IqU9Yr3 zwe^Wu(!i)RB^Cb`lI(zm4S;TotcI< zt{WtoG7Bd#Z_}A+*kNXpOqqofm`~Q3Y2;yMl1!O}6PQoZnQ8E0W|B;qg%g-h)R}4g zVP=v{nS~RWPtciZ2x4ZEOqqpKzHry^1v5?|yKyi&&P`3WMyfJT@oYLFI3ExnrxR0y zWnz*HiG>e{x9Y^yT$z|8Lt^0r;$wAUYOG95k|DA10r872pI}QWO3N_mV#@7vYAx=EDpK`_uIkWw-7*IOI2Z6nX)mh0)K-|6 zBr{&&0$!gW-c4n&<>$NbvJk1IFfU1Fyut;%K0SPzm)Z&Ql4Qm!T)^v-!>4(vl`tBg$;mxV)!&L zRUif?$qrc90NCe+PXkj8VqlW&fQ1c!eOmYkxLm1qyH_*?*Q7?kb&I%6;A{Zwv%)8V zd07M{TmrLX1}tp=?32Q$foV;Ifl0Ch7B&F(IpNd5v>?L3B-sHAoAI{nXN%39ovs&- z66R6RQ6n|Nt<9wu2r#_)^pCDwW%xj^0iaQMMp7fty6{Z6fY;~zOY_oOU|y2Uc!dji z{hdx}UYg!AFG*&+!UgTj-(=u;m%@jryP`h_uO>C(t?PQ1+duR1PDB;z`L^>Gw=ghC zcEG|W%i4pYW7rYGv&m`V>MDNJ-biYMTi4!%3utFGT56nJdr2~*6)wmDc(F!HO_OO! zGNY}ypl9%zg3~<%y$Gfy$&6OGj60WRd$+e|Gau_e+J8##72QvCJMAB=KXcuC$KM>k zsJ(sep3$F;4w$`hxbMvS+yB&lQS0vPPgb;H{{;V0{{ybZw9wyO_Csxybh+E-a)BMX z^| z(4^|mSk=1>hpK`8w;X=F^cG_1EVHYc~`ZLRU6R}fd}4n*A>MIqloNy z3Pb%1OO1eQMjGidxGDQ!(Rc5u0W+c_e+fjo63|eOGL0$$NsY?1wh{;%0Q);2(!jJ9 z!@wlj0Sg-dUs=@JrT8-{Mp}zuV3O>Bg$;oH9T4dfrnMLbCdm$1*Z|ny0g(o#wHO8_ z$qrc941YI!PceAB)DINV9wqhD;MJrm@2Un0HM1qgHKYlhL=V_M-Lv4fCdV;ETfa~s z6M48+b`-RGxJMFS#I0@JX^=be0Me=#TOCqcDM_$A{LrfY|4y*NCejWkgJp z8L@Byu}@5|5mPY7WlWM8v2Xz~?*EwFs*$P{=<>8WOp+O~a6zBz@7756xf}{npUYB} zcWS|-v;nZcwJizE%gF@Hk{PhH0kFTcEe%Wy1q@7*9k8$gu)nh{4NPkV3`~+8u&|k& z|Lb8i@ZYP8qvCBu&l9vf`y-`D#}?_iw&|4io@IRF32cCU4A_Ws9v zYTxoJDy}C(jvGI;MQef8P(hO#m1*tbB@sBAeBo}NzAYw>lC;qnhFYLWjfm^=9BmMLAI{_@Az5epj- z`@CZcF^xD(Op+b3umQ18Jf;xSh{MDr*%1pH5D$uFi6V9@J6(63TKVdkm?S%5VFO~H zcT6c`8gZDIBs*eZlW)1(XB~6I_=3#G$K{rmn*>rBYf>ZPWp=w5!Z`uj=Ppe{^Pq!b zE}>bngqBW#?i96ImbA+QtCTcLrqBejRMP&k5T&GP=;4wk$rM^Rp``t7Aqq5&J`7Eg zDYS3`w7)Jyfu;e7p-D1@7Ea^NOR|01FU)4%*ZyYvg_H$g|Jmzs2f*CmqW(j@f9;*n z{mIUkTkpvJ4j&5~k*zWc&CKE#rb$ z?z88`mDKm3Ax9oX8Jg6*2(@oLWbe9gw@;s^5L5S7{P>VRulzA~#6;k1P{z+KBDtdL ziVCvm;fjPZnq)^z1WUv|fu2&vG*{#@CdrOi*r1Gk20ewC=88;Ak{z+I0kKb^rx4R{ z!o(!m5epj-`y6@-ak6upv^}dTC;w zB@!`9X2jA4#6FFlLQGRcCML;_SlEEr=h0J$X~bb-lI)0u4TyarJ%yM?9402oj#$`$ z*k{sHh-t)OVv_8Lg$;;(&U1yBMjR$4$&OgqfY{&VrV!JJ!^9-n5eu7fX9v#ze>a`? zF(rBFQ)f`{(Ro6=!^5_2JL{wn>uueB_O1*3DLay??_@eh4bwiDvmB=a;}vSaBpCt= z9{_Jvff2Q6z$6(03m*V46cd2NtdIsMS6|A-Et0Cpt2(>I^VDTr0DNE#Fhz#^D3Z*8 zh0EZE>_bJB*ke}+QL6JbrAnhdmnunSr7Bzi?60zL15Bdc(xA`4B$)vV7XbUaEEHfG z^BI^VGhpEYV1Jo~0!%|b1CwM1EL;HWZ?jNlFWdG3x@M>@_(makBhzqq3#v9 zn$!qa{n`fc+mS_oP^=4S1dltMJNQq<Oz>9Bs*eZ1L8w#h^Y@@Vv_8Lg$;-gsUfCLgo#PABNjFwKDdUM0wN|R z$&OgqfOty{F|E}xF-dmB!Ukj8VnHm!9bT&gaT%tw)QGqyOqVVI-mC-jQXK)aWCbi; z{Q3XZV|@O9JbU5r1A~7Yyr_Rq@6UP%bZ_i@sHlNuFc-6}B?I2*JrpN-2!VL0hlCB`VI5tC#`ENnpR({W9R2UTK>f*LVN zcErL4#6BOFLX1&RBPPj?SlEF0yrMfmJXtMcjDi|5Np{4-2E;ximr}+U1vO%l?1+U8 zh<$D&g&3otMof|&v9JNLzZ^s%#we%}lVnFMY(VU92bmC0dbj8tFV!LpYns%ExbBN4 zmrkWDGiL*0e?5poOtpxKNwOmrHX!!*gDAvQii1S~>yRUlO7~QwYT+O_FIz3nxJPTS63Q zilP{rBvWYN1n6ygLv-H+X?2<;Q)uA?Xn#+LQqnXAaY>V83N4%f?Jo*ZplKLlXp&5! zg%hCtO(6<2jYJGhk}0%s0`v(rb(#hvh9=1rS~!hc_hde*<#={nqeFgUk9K>;0g2M*Gy({jK{k^80k;?)}JljTlGE`8i9CernzPT-t!x z=Oa%O^Z13AQxdaeMl5Z*v)Mz%2I@{9sYE*w)Hi`wlN#}=+azvXKMh<);Zg_zn16O&{|ENnpRlhenxURh=LMd7g z6DuDS#c+Eg$&OgqAj|9tMSI)f+Z!(@Q$V6gjd+(?X)Xbr3vf@;aJe%ns&Gg~%nw>~ zc%8t-^0!Z?>FO!g>-YRp1h7y2mn8VBrE_pZZY&4g>X4vh=7*kYold zTmbBI*ebv@h2at=$qZPy063(elHJ-OO^kTUPk6t?X3_;Dpp1Sc`gPH?eTHzp_msrdGF{m1R+v~I|LYx&*#$N4Y%?<*qVolkSe`=j{} zUeVz=-hW(iykC%8M7I@sec6D{R2qQF+mmYrG`c@d_L8&Ujw5 zM#_Qf>qeBC7o9q>Yf_bcRiA#;Wkn_cUo{r)Mh@Ib=ILToiI#S#Pe(o1q$=>Lc1>zm zeTZO**e5)Vd%OsX#!V(B$&Ogq3|{u{W?c=JX{dF9MoTVPlI%)W*r2`ne8@^&pwW_v zNwOmrHX!y1kriSZEt!}kJ7Qr2VxJLNA*R5ZiAk~}7B=H=W)Bp@$7Q|?jy8Kyho}qI zq(;2@J}|ayexzt)*jnGi=*~Rv+|&I+ds#%T8~}ZD4K&3Yr~*-ul4Mk*6KLTC=$mSw zDd=Eml1!n66QJK%15J?!Lz83*Et~-Th8k#!IT)HGQ)uCoZ@&BW1vIYQ@C`BgNSA&j zpf#xqy{bq}y${5Hq)Q0S2gt9hL8hO`$Rrse3m;6&K3X8-mXK;ZO!XhgQ9MjiBjmbx zxZ;Abj_wKB(|J)R7Vf5dLaM}6iMWJGGAm)>GH$&d`~RQL`X3250Ngx!bhO{><-?B; zv)*I9ZQc8_Pj|l3Ie6xl_GjA9c${bUE3(TM?ujz_PCAcho{uewasWl4Yf`n)S2b&@ zT>>BiXEV4gd$5R!CQBC4+99<9*K@d!&nIh#BsJo#-7#OXLAkCkx(m!kC!Mka^F(q^ z7I$26fH=xcE{Li2GcieaB`a(|9OWh##MFf|F-dmB!Un`qZt`ktb0=?<*2YpJ;=0x* zZ9p95Ca)5^O5M$j)BPPj?SlEC#%JeOW zt25JR)F8=@SlA%4e^b#PCuXbk3(;3Z6F-s~5$kj5$;3}MVFcfkSLaa+LiY4xjEi11 z&0|rfn$)OF>v}WyWlPy|oDGOW>huILg$PVck{z+I0ddHio*vNBNjFw4oTA! z#55){F-dmB!Un`4V>-S+^|4y?85aFQ5NlE+;@U5?h``x^IHXHY5YsPYVv_8Lg-yQY zo=oq5Iqm>)+5fWCh|)8C`?HK`GB{c18HEEO`cW$T5EFi6Uc&VE+$KqS+<;xfi!)FAm@Yb7 zK{EpYYf=?>RqL9yr$LCo*?>6CJY6M5IhJ!7CML;_SlEC#&OBWurl^&PNwOmrHXx2O zPgjZ2vuI^Zk{z+I$>;A0nWu4l+7p+j&^cs98EaA_;>5=)#WxEK;9LM45>HED4p#}7 zB`aX*0^pE$Isr_fDg%>b1}t0v9PSQE08^OCz$BRg3l{)~tAi52wCu&eB$)vV7XXKw zgA%~BxX8dHnE?wI0EauM6TmdqFfd7Gz`_N<;R@;mFby>fOp+O}Z~<_*fjR+9BMk$S zWCko;030r$P5{$D!@wk&0Sgz5&3hFwaj|X~ZQoKADu5?DyCgLS*1if6HsjW5*^{$( zXY04GyMO%E@xgO%#_s<uj z$~aA|pI$_(@2D#@z0jmaMOnKrPXx{eKmQ|PQ@_fKg4cLSvg0Kily02pcn_y_g#zL@ z(Q%a+ot;*`B-xd(umN$LHn>WR&O;+6$&OgqfH+DUJekr*I|WpO(0yrABjVak1R_|f z6;aw?K}_$2iAk~}7B(p3C~dGHre1}KNwOmrHXx4D1`A@UMNCYR9kH;%M$KX|3}d6* zw>;jBp_ZpfjfhvUQBy)VCqQr3q1~LX{CgC03C)rvv~&V=xJN~nw97f5L6c+(Et~)y zZv99=WA3LxlVl1loB$ne{zyP${-;5cWC|^u03B}sNI+u_s6mrt3N4%f{rsASNMjH; zM3PLQg%hB|Eg*@KreTPoNiu~NPJj-V8YQ4g231}LO7@8zgXyJq% zv2dwyVn>Xs6QH9VF_Nm#tJ-v|-w_i&Kn}MGCy=Q!F)~Sp$ifH6;acGYGF2r;Cdm+4 z_>9Nj#{B=cv+=QWKQa1?(er2Dh@Jm^2QTy40Je7@==^=>1v7WI|E#?c9}4_7?gjkm zQI>se{aM+^i!KspcYJ`Q%?9v8HL3bTSG6-0O%$+B6q3zioyg;qy9gY$xN=Gw zI#d*K_;!pR)hz#?Moa{*U_g9q4KYwTOvHvLhBYAU>u_T<(at z0}kb@2eBqKBCgvkVS=SvakNg%5fc%!WJWA)P{uE+A*PUtiAk~}7B(P$VGS|GOiWCY z9kH+h@e68*DQIG1lI)0u4Tz7bA*QH_iAk~}7B<+X{CVD{j1CS`&jMaeYQ$T6rZ6Tz z;fCv4is4x!dctA1xH3Tm6z*z~AscstATDR3EHx_Lnwh9{@%R6==gRy4qObo4XY?QF zeWQ0|_s-7eJNwUE*M6iu*SaWsXsY}CD}ET=2>1+lYM#TfBXMf}?BdkCCN(cuE$+c| zqa^TEVd0*T9|UV8Rbs?R<=^vm^G5QjX zm?S%5VFP01BxGU^$B0;y8WArSsg(rI2E=hrLSHLNEEgx0e~)^sNoK@MutXeZ&Z`n5 zPSS`;vLhBYDC0PDUX>Vel15CD9kH+hahy4?N{l#3BPPj?SlEC#&YV{zMx3M(lVnFM zY(O06)~piKh{G+9Bs*eZ1LAQ10|K@xF^xD(Op+b3umSPadVjn~BMuXjWJfG)Kpbv> zNR%;+I802E9kH+hakv7ah=h1ch+3W|H6o67i>`E+3060yN&;sC;&2BJO1YQMRRW*eR1?WoCWw@WC3`2{}*xd-}df%vcK(o zJ^My>1pdGEFPV8=v50ipGu!-g&~T30dd{}+347TP7D+PwrLj}K@K&UHDnI@8z|n{G z@!xL2Z_%VG@T!i#)O}n{0L}&LNFj+U){%TyQ!W;{Vk}!ZfHkQKys85hHS0(W;DHzJ z2?<<_s6<1Fvy?CMx2vT~=Z-u^4>KcG5}$S1`Ep?dYP>?WopajIY$_ zqB=}cwS?DNhx7TjhJd9H%C$64L~iiAk~}7B(P`Q1ZQjw63z7V`7r*h=mP^qts-AxH|eqKZYbbVqt^c zIHV?%@xuSd-dV@XQDp7ErRu4fxp(H`Eba~=!Cis{OCSlZK?1=cxR3i>?hWql?!LIg zF7B`k%i_-B@;h~k^i18JxmmdM`|j`a?(QEvyC=+fQq%o?s=9lsLrat9e8Daa$?+ib zg>V;|-~`)}g$>&)0y-#~hV4>RhQnRRaIhs=8^hLWz&31^A~PK7LWYCw$l4gTRsyzR zs}z~xP!}>BY;W4eu$4BpVXG9G;ZPSc9K1cGjbSTnY{OP5GQ*)RWH@+pNE^de*4T!v zQe=ihUC40o){r)at*EgLTcyYhhq{pA;Ef?|3|mQK8@5W384h(xilv?D{39LlygDDB zVl`Rxj||=fa9G!UUCG4O@rz?$iRJyg_q?}|dkFnl;6Lv_>V&BaqwRPl(sCD)IAbl0 zI+cbr=7Zf*)vp+CI?!#>OIGLa=$A0l{L^%dwD`43(fJLvA;0r=^h=cKL(sH|2!SLE$eZsG|=?#y$BInM4K)&e~%Bg*0;R;@7etI3aK6pIv9f2K(sj+ zXufZaYstG0VN-tdv-ULBEcjF_t<(Gp4N4ZmJpy}UqFbw{qLdyb= z^U~GeRS<0~TgSW3=e0K-yVF)v-~ZJ73L>;@S@_j*V(KZ^#e)N?9z}NPXlP-PGmaRGcRmfUlZtH+Ac+DI^2m&2m9u= zF-_M6I+?agk(v&5BGbX%d2LKvGiK}X2v4Se_sy4S93J6LWIEVCuZ?MI+H9M)N|BCq zs1unE_Rwo%+L}Atrma$>rbC^`bg++J8`IW2-8OBNA~hZAM5cq+rL{3_%|&d}Rw+`` zp-xG+O85U?cGTVU27oh@A0$`mE_6NDHGkrO_}%et)s1cCrOwOZYq73B#e2&e@t?Q! z@8F0+KG>#%?vt3wY4hcER$$S$(Q>caDh=t|;49*tZb*mP#13e_6wut>ZMo`geQ{I$ zjvKSdx;qWGN<;TMZvTCDo3y)GS+y}hcN&6yi0BGeb6ne)`QP-(zXZ{vL571ph}syo z=32I4s}$M5hPsg9VE>^uhOOhqHf)t5GaTwdr`lpuS14^xHS74CYB+evqB%Jky5UZz zn&p6xiDA`62XSnDCAMR$6rJNx8ye$<2Rd$E8MLReISw|eZ?i76j(c+4vedRpLvlRm zQajX!()!Gfmu3e}`&$OzDhPI<&5C4LmEIZ?{F;oz zxMk3+#enVDDn;iw)P}~G-onz+v9%Jg9b2X79EaMFV|rmzN5|GOz;*?R%u9%2hEC58*<$8rkjvs>rAyBTczk6huV(_lNo+#z|J&0U@Z|qt@dx8G#wMt1@RPfzH@iGtyepRT)7}#uR@?vmzo#(*bY#%Z zCe6o>=hnZOXt_N)Vy9(?({Cn%4GcP!1|Ax}>1NsBKS5|Qpu3P`+C8ST<7GNKwn~vX z4t1dmaKTPfbODZsxOroNezVZ>H>A<;R2pdbH{E!e)O{>A0BIP1Kfg`_*!=+f*CN*7ri=++x`(MQAzHhi+8|+fB8xY<(-XWvdjS zHIOP8e#Izp!Xta?ow)plE$>%RtB0gv54im7;STYD11&-`g_Ku{9yF9b2X79EaMF zTZU6l{sG!womZ(sf-$IUw@c4GBFv<+LO$P9JlrZpW;oP^ z3sfPw=jB&T@a6#zOaxEK^F1pE{wW8!|khY`MI>{D8Glr_zu{v-9l& zx*%^k&~4~%e|2zsW1!y^I{URs(fJ+FhQ@b`LB`km({!}9jIUMtAM?xe-*JODUas>9 zTczk6huY8>j~&FZwTQCE*eXTmIMjw5Z$5})Yi(^iwo1`C4z(f2n+@XFT3XwVtx|N3 zLv6_Mn5JX1RJN|Tw_I`|$DK+;ay*TT@huK?8*)5)5XTk?ZO2wAI>(_l(_lO3^tEwIRpB zt9RNsw$4=Bu~mxBai|Sl*4}XHnHRpSP0P!cGnE`SFKgSSAvvDLW$kb$GCiuZX5KgdY0*x9sIiqv$d6PaFb5YyK5(mJMT zCED^OL~1(JiA)FY<7snvSOH|4wn~wj4s{~a!8>`{n6@&=Hf@z6H67|iri1tLv@vbP zkZsy3MQS?KiA)Et=4oTvN+R2|Rf^Pfs8iBCo!0*=&^!H-YjoFW*S|#*hsGbEd;hzr z>y(2r@@(<3Sk13`uXu|(E9l<{&^@WsDMa_2diqXXn73TMwYtz>wNq(Gf7L;6oLCNY z8*;qmK*ufXSqo6)xKn9Jjt9MzU^&ojlAk#Z`%*&7Fj|uYdxWjhko>leFpXc!j=1Jh z%>Skz^ZSHO4)_~isycD%H%^!0crx9*qG``qXaqZzhBShMU$7q#WOVIt_s)jx*@|V@ zE=6TH+=UDW`{9O1I5b^qj<8*d%y4+Bv{W_N3%8A7>lCy{*eXS4IMjtkIM@fbjbUqs zVjH$fkr@tkA;ZBQxNQtuvlH8}Rf^1Ts0$h1d61LNnwi*!tx{x$LtV)5PJW+k>^ zs}z~xP!}@1;~<8uq_z!PrN|72x{%==1~F{qt8LgSMP@kEg|d13sfMS{#u&C!e`M7X zG*bCcFJl#7CUeFLHcFZ zUTzlDnTct=%hdPnz*8OA#nzl|^+q6}R)O4s5aU`0nJ`Dn;iw)P@`fo9nf4 zOx)HqbGB8=V|mrRW@o+K}VcZ4(DNwiYRL0Jn^>Rf^7Ws0~3a*cpu|%#NGW1wHk# z#<){yNRFp5^=TU5gJP*#urXTLu%3A||Gdozs}z-C+rY1egMHE37^ay=C&N}LGQ*)R zbVvjnd9^W2GmlP&tx{x$LtV&lu#Z<8!!+~gWY{W2W;oP^3FPRO$nFl3}SjTXu(vS=f`lF%nF)^&xx`Wq1$JSRu zL)_xnDn;iw)P}~mbqBA3j;-&+c5IcRa~x_z*S3Q_K>DCu<3^Z*`No>@fk@vd1C6X+_yH?fhl3&2ZQSRO3y6Vv%SdjA9Kf1)sLqtLtoJ)chl z)^cB*Ah_(>8;=g|eRV1g9LqoQCV$g_?m~`fr;5&wDQKGig8i4VN|8AZbs@*J8AxZx z6y}{ATcyYxhq{pCV5>a3S;q$jFXzp}jMm?fhPYE{pyA(ilb=`mot|^F9Q=Az1Uu!m zaXj!aZgFgtqH`Q-Lt`9llt(|0MqBI@uM5coc{@R$P z327(ORw+``p-yBv*yFE_X_}CBGHsP2H67|irh{$%+L)#ZX(!WGDN@s+PGmaR>937x znvixfZIvQ59qL4;gU$Zhn6@&=J`t@_q^3ii$aJvbUmMd_4B4iwQlzFsoyc^s>0cYu zRub8!tx}|>L!HQUu<>6T(^eSSrma$>rbC@5!-E%h(Oi_5r!BYdtmQ13?o=9*=|S(F zS`Ks@avZ$5tBqr8Eo(crO3^tEwIRpBtGn7brc>6sLfbONRw+8ip*Cjyf2-p?HQ)^Z z`WFDR#CB8H(=Gs`<(c9G=T>(wZ%(nifBYYGJAX(YLnBR_lr>kc^M|hxEJs%eI{XZv zSsFOhf8-Scy9+s{jo>;vCdxGb1v;Etu4!1M$Q*~dkYn0xud`!t2EH?A9sZy)P|xY*n*Lwgb(AEdA;?WkmF9JAvvDLI%T+JLU$t5 z!M>brOjGn&$3=^2s}!l}P$xPzS~m&g6=4g2t%<9hCRS-krl*yE&8aXC^RQaWCV^%R z+v3=owc3uYQgn_(ZD@>JHVF(lwx+DMW2+RM<4_xN+_Fhv$gy?4+K#PKbdE!9$Z^Xi zfg#6qvNn$*+p$%O&T*&>Id0h`Fyz>psoIXMQgn_(ZRpW}V3R<4G@yB3+%#;LqB0!rLWYC=0oxe1F4)+Htx{x$LtV&l zus2{E!`8(b+ptxN%y6g+84mUZY-898HQTUNip+4R3mFdf1Z-p23LD$7Rf^1Ts0$em z_5*BV*vcB)uvLo8aHtCz4)y|UW7vus+ptxN%y6g+84mUVY-89;8r!f{ip+4R3mFdf z0BmE}3L4w6Rf^1TsEb+uUtmA~pG<5Wzc}_4-T6NOZ(vDzqP$=}1f*^};g=Yktxs}MP@kEg$%duo;c7jfv=Ncs}z~xP#0Pi1-mEGwW_A!U~8_h;WnkA8}9Tp zOZb==RtvUIY~$GaN~VTe@Muo+FB6?(%Ykk~V;trbC^`bg-#n8`IX*+BR*KA~hZAM5cp%72B8|n1W4u=sgVn zhYpWWCo&yuG2h0t6+`w&Tct=xI@HOm|1X}p|KF&wLE7ReY1KoxU^G+M>4O6~%GHjKiGaPC|%O~DxqrG8@_fCebQgntxZPLSQ zywip@OlO-uB$^n|(QX;;R2q`ue`9{pG{Hy3@Y*r@N>*FXI@z0l-1_U-r6@gzJJC2F z-Ptn*dneCUDN@g&PUQKh&YmgPJ9)NBk$MhwBF{&5_Dr$f$+K08)N`m4c|M}EXG--> zo~=@(ob_HY?UJQ9O^`#59{pN3Ll#rRw+`?p-$xa(9WK%{INY-rAR%8 zI+5o?I(xPv$o6cNBJ~{VM3)8*)}CE6HR20KEe{D<>j5&|sWc?h(|WAQo{^K|$%8ny z76Z0ps}!B%P#bc5&>)Vjm4NNoDn;iw)P@`%IEZ69TbtjB?bs?s=Qz}c93L=(wm zIkrmCIS#cU$NLZBn9kHrj;&I3jzeu|lE2?n$KktB_VqA2Dw=mv?b47OPvfzs=8)+w zWO(1shV5%%mSMXTmEmv~GQ7_qhOO&hwqdIjnc+|uz5buo*+sMnrcVa{TZ0}2NlzW!*1^w}X|4A=Wr~N!!UfFCKi+OrEw!s+MoO4aV>ay;JFT{k_K>u=}o)cAvcc2K(=_&!qh(Z$C(DKBg9_(=Hwztp*du zuvM!Rfz{CG)2Pzk9UZL(^Te=Ks}zCN(C3p?+OeafRl>m=x8;V z6^2LEDn(#5^!a3!UTe_NYA_iLTeV6NSPgxCddWJ!%s^k;pls0qu=B%OS9L1=E~jG- zIe6lvgXzTIb<)I1t{1yxCH*^asbibi_ zcgije$?ssdpu%m)Fu%m2tzkP~C@`9a?NVfh!)?egzr&)vVJl#4!&WIe!=W~0nBQU1 z-msN0wqdIjo#9X$GR*I=Xm8kx7~8N_iq3GT4H@QlShP26WsGguDn(~F)P@Z6J1p88 zwnD}>Y?Y!j9BQN2|1-N!IXzpXE>HfF9N&FKx7W2z;@X6Y?-;u&)~$BM?SLFB&h|g> zSMW0KQ||1}#DUBIY5#ARpV!vIG9eaUkpAw?JF=PtD~w-n{HUq-?>m)-G%VA&S!kDo3#Ty6AU_ewn~wD4s{~Wv~S{6&#?jHOg!l1*(ycqIn;?f^S&hJ*cj-U zkkHAqRf^Pes1teSok`kzCMtCDY?UJQ9O^`#d2f>To(T+{JX@tmJ%>7xXMW>Hd(Sin z?&R4jMd~@!i99db`5dHqa3{}JDN@g&PUM;2`q6%zX)fH!vsH@JbEs2#p*p|!Lwnvh z7S|V?Ms2a_XmiEco(>OE`dyx5b>91|nD*f?BLmy8@`TZX4jat)Q+o)Cg6DZKGD{k2f0ncrwcG@n~<$*t+UeM9WYBM52R_)RsZ#De+WR>2`(a~xU5@D-WDFUmZ&nK(& zN{)_JgO~_gwMr3K4SjyH`$A_XX9cHclhmnQpLMO7XvANSFBv;ZJ*H;Ep7It6v88{p z_qDgad$RLSXNBaZ-4}LWNEdH;n*)6+(#;*c&TP3OLQSmsVyDvY`uqJGH~aK0q^1Gg zh5YiqaP9qC%RBq8VwEEE8|p%Sd8hmKeyydQ?bj+r<~P)Z{PI5c?fqKII@_;Rip+1Q z3;E?;?%VsdmUOmXs}z~vP#5ycd)&A8Yc1z&zg8(Szo9PVmv^{t@7G$&*?z53WPU?k z=&~*EZ?FB*%^l6N<_!^@noXPxQW}!qY2DmuI?!#%FmG?)*09db<{!5V+oi}1hue^0 z-rBysVM@?WhOJU`hC^-0FmG$$-msN0_6S?0=nRM2kYV1^zP({9Vr;`!DLTWUHe{H$ zvu|(M${5?QRf^7Vs0|tBt?b(ywnD}>Y?Y!j9BM;`c^muohOLyb4O^w?42Rl~Vcx>N zyVthWSF33P4dZD-NYFh7$Y*I_N)}K#TDAwy}H25mQ zMy*l=Mnj*UUcA0;eCoqv_Ug?Zej4lM>dh|wE}#F#>dkbazzI(CI1SG{ z)}B0hcl~ha5&Io{#BbWjdm6`SxD$D9xnn%w+!}7pFlby`JX@t9jq9{LhdL$2-Olv> zu8!JAq;MyumlOS6gJ%IQ>-xECT;lSC8{ay1jabGndvAHmxEbe}Y2WYv-~1D5qp2t1 zcAhtt7VB@g!T6o%hx)^p8MXF?V~HTmA0o6V4e3iTv{--A9(x}A>x0P5s}5~wt+ahd zzsq#?Yn7t&8)`#-x9jM4L}$NNDLTKQHt7ZG+fHTO#tYHm(7abSoWQu^_%Wk5nEK>N zr_%4TJ2gD$Y9Q?#+`Jk%Ai#o2Q0pOSel}y3hUB4rfQ3GvzFXcPR?iN?*YyTcx0wuK z7XEJP4)PFxxJztK=hCUi;->$>GXpvVXfNiDhk!Mamy&Gxf1H-G%(}ZpLl>hUN!Nzji4q zzu_*F;Zp)~YHGFM(OPQ`Qug)MW)$nvA8$4M`DB$|d(zQr zu&@bRwMr3K4ShaYrT3k5v>IHw4O_KJ5m*gZwMr3K4ShaYrB|GE zv>IHk4O_KJ5m*g3>Y>!1Q@5tBOI@D2Aa!Qyq*NnSOdX#( zB6Uz|@6>Lo9a3AS#-v82)=sUGS~j(0YN6EJsaaFgrQ#_s`9t!nCf`iHlzck* zSn~eloynV$S0^t?o|`-^*`KT?bID_phbH$=?wOpB+%`Ebxk+-pmJ*^VfR|yD|Qd-UZ{J{?isri-EP;nU7vRSv+MP)=ei#6y07cDu4}t4={mdX zq^??5w(H2Q1H1O@+No>Hu1&kv?OL^KnXbjU=IxrbE7c_vKPJ9Re31Bi;-$o25)UQr zO5B*ZB5{7=w8ROCV&d4uA&GqwyC$|xY@QgESTnIgVyVP}i8&H8B;pAt{!RRo_&f2} z;?Kq(qn#LUjb9VLIDS_A#CSEHi60R^AihU@$M_cUP2%gsSBZ~^FB+dGK1)0q7qK5= zU&P*z{Vn!l?5Ws;u{&co#4eAW7dti98!N<)i5(oQFV{HMP02fQfI0us-n{BaJ9dhsCH1})y8V1T3HQOi>SHP z%&J@Y_?~u%d=GEp1w4rda0jl(WjGh7pn*J&#$@b;3D_EAus&ADa##ZMV>V0&C4ZLx zk{`*pN93>7Clf=$qD=}KECsq^7ip9lz;!mPS!2ikr z%Ky-R%YWJbtN*Znw||p=rGJ5cy5HxQ{NwyX{eAu2{O$a){)YZq{)+xEIw_|92ib&h z;+|VUHqN4qY>Y(-S;eA=ELaqfl`Qhe3KltJeHK|{Jr)^cT^4C%9TvwUa~zA~kU5sc zvB(_5;uvI(W^pt!N3l2xnIl;oiOdl!jzH#c7KbBq7>mP@Ih4hr$Q;7r5M&N!aWFEI zSxiReAQlH9b0CWYkvV|H0m$snVt-`zW3eAH`?A;;8^lEs$DY{6m+WX7`?kIXn0 zmsubi*=A0$zmijYqMAznYCD~h0K~P)U4wEX!h9 zWR_vE3^F5Fj6h~Mi{Z#D&0=X}hOroi%u+0tLS{)8OCqxbizSd*oWHRwSj>dXj4WnE zW(F2BATvFS>5-X^#dOH@u;@W1#Uh1Fl0_1kZWi6hbg}3{#_%VBjNwll8N;6#GKN12 z8N(kSWB4PHG5it882~5%pd0-q?td?pOI$% zICmq>{BiC=n)&10i8S-axdUnDk8?ZH%pd1Aq?td?tw=L}oLi7){x~-y&HQn0LYn#G z+=w*u$GHJ%=8tnd(##*{I;5FD&b3H0f1GQOX8t%=BhCDAu0opm<6Ma}^T)XYY37e} zInvA@=Q5<3KhC8{Gk=^*kY@fk7bDI5aV|od`Qu!OH1o%~0BPorb3W3{ALl%znLp0C zNHc$&bC72KIA}5oIKLZA18-2^T){|&HQmPNHc$&G}6o; z=Xj~{;~pn9eB5KDMvr@p)ZlTCmKruPYOJ_>OAQrw zFR78@PLdiZ?w(TP#N9(`n79+AMv1$-)F5$plNuxLu2Mt9-9>7IxD%uXh`Y1Y_;7cU z8XoSBQlrD&L27Wg+e?iNcRQ(};chE6GTd#X28O$})VOfBk{TB7mQtg_-9lWkA&7}r}yP4E@aK}gu2Y0m8XmB@`8Vv3xQe(m0SZXM^8%d1>cSEUx z;Es|S2kr(^!@yl%Y81HZNeu#bU8ynPt|K)B+>ufvz+GEv0Jv*Oefqm=N`3OXYe;?S zyQ@om;=8L!ecHRLN`2D1t4MvyyDLk5!n-R;eY(3VN`11sD@c8+yUR;`qPxpUeVV(= zN_~>M%Se5SyCbAN!QJ6fpWg1$QlH%JFsV;%cPXh)Y?(|Zhpzd^1pPnwQr}aNlQlFY`QtA`a?UwqqbZLF5|B;aTlyu`# zpOCJS`gC+bkL}Yxq|~RPE2KUVU0>?c(Dj5q3FFe$|0AZ?|C7CcIX&O>d_t@L*Lt4q zd93H&o?Cmap_TtxJty{5don#o^c+B|{vCU^=-H%aot{;CM$n3Xo}O8Hl072zL+T4! z?f)(HV(O{XgQ+`HH_%G|yws_w-c%uVOzL1-lw>8DP99FH`iaRMlH-#bCr2h%rWO4n$+?p= zC%cn=_xH4#f3N$^?iaeB?0%s84qC}y)_rdGDcz0keD~4ale_oop3uE@_n7YWyI1dC zu6v2@`MYQ9o~~Qbvkd?0`l#z|+TZZ$u1C85+;wx;Rb3Z$ozd0bRqi^z>#(l z7xj?3OWmlhQ0J@D)CsDnj#Y=KeblaMTeZ0wrPfp{sHN0`Y7RAniYo`-;1j%q*YGSJ z!@al_*WhBDg%eSwiRBSE0DE9ZY=KR%4pzYkEQ)zB3z87>2l<73U;a(LD4&uK$~)x^ z@^X2eJXQ9}f;>hZEcceX$Zh0ias#=BTwX3I7m%~d>FHqoMSLwj7XJ{hif8EUlJ|&P z#MR;=ai*9eDk3co7yFBeVh1r^Y%E5KmBnzeh?rZgg$m@LZyq}QQ z3FCP`BCj*X^L{{Hr;O))kG#$q&-)H}oiv{JE%G{RJntLib=r8|*U0O<@w|T_uM@}f zzCvDSj^}-eyiOg@`vQ5LJD&GB@;Z4u?=$3e_ITc>$m{g+yibtV`Qv#XBd-(4^FBge zXOQQ8h`dfA&-(y*okO1YKJq$=Jnuc^bryNvyU6P_^1Oc{uk*umD8H<8!r$m^`~ycdzzY2|q@Ag}Yv^PWduCzj_uhrG@#&wCbmom!sv z4Dvd+Jnw1bb#i&$Uy;|@<#~TWUZm>BNOOe-E z=y{hQuhY=;E=FGGq32zMyiP>VyAXMuiJo@>^7FGeANl!MoQJ$lM$bDJd7X`(cMkG8 z9X;=CTdfrLM>%{cD6Oq@M>3LI-*Qx1w{mARw^t?Xgb#i*%3CQd0^t@i=b$WVU19_dF zo>xa+C#dJukk=XNc~#_fih5oJd7Y!4S4LhZspplD*IDX$MY@v7qJX^4Q_ssIuM^et za>(mU^}H_aU62TvN#qw!=Gc2GyFLkIm4f$kTd)_5;?=4 zBak!vIUG5|pTm$d{5cdk!=FQtGyFLiIm4gH$Qk||gq-2efyf#D9DtnR&;H06{_KaG z;m^Lv8UE~poZ-*j$Ql0Zg`DBfB;*W#_C(I`XAk5Ie& zXZW)va)v)!AZPe99y!CGamX3|j784yXLIBXe>OwT@MjEihCic`GyK^UIm4e#kTd+* z7&*hAjgT|^*$_FypHave{%nAp;m`WW8UCz?oZ-*9$Qk~ugWO0SpOMHJ{;Z9h;m=yg z8UCz^oZ-(J$Qk~uj-27oYRDP>tcslB&nn0n{;Z6g;m=CQ8UCz@oZ-(3$Qk}DkDTGp za>yC}EQ_4s&oamv{)|A*@Mk!3hCfRqXZSM=Im4f&kTd*Q5;?=4C6F`xSsXdTpT&?f z{8+G+;m-`n z8U9RU zByxs70y)DUA34Jx4>`jh7dgWp2U+Hi`wOznANOZunLqAN$TEN2ACYDLxIZAv{BgfW zmigm;hb;5Q{T5l~kNXX>%pdn_WSKwizmR4AxL+a5{BgfTmigm;fh_aK{Tx~5kNX+2 z%pdntWSKwiC&)5?+>eoE{#NeGpmZkNW_!%pdoDWJmJ&+=ndl$GsO>=8t<1vdka%&&V==+`Exw z{}&>9kR?H_gZ9`KkhZiGJo8wk!Ak4S0T&%aj!&{`Qu)JEc3^`99ia% zdl|CKANNvZnLq9&$TEN2i;-pixECSI{BbWtmigmefb9G{KIbFL{Bh4imignJi!AfU zJqKClk9#(<%pdnGWSKwinaDDK+%u46{V0Vr`4iTzRHC=&aj#8D*nMTw(G?1K_Vk=Pq0jv}!aN*qOE5=tCJ zVo#Jfio_l$aTJM(C~*{t-BIEw61$sdFN0FEn zC5|F73rZYCVrG;$io{GPaTJLeQQ{~PGoZv#B&J7+qex7L5=W8fL5ZV?eq&bRC=yAO zIEq9!N*qO^3#EjPSdl;}&LWOdj71D3#X_M37C=d|kSGZj0wte?kCMm2L&;^~qU5k} zP&`fx{}&XGW$`nL$FTSb#iLpLh~iN!en9a^7T=?I1dH!bJe2ebGJ#mOwbMDZXNU!Zs(i_cMH{`jAv$o%m?MUnaAe}W?O$Nv~b=8yjoip(GX zLll`m{s$;BfBg4RWd8W?p~(F4-$jx6HC^CQiyHRBR_;;bm{PFKZk@@4_fgRHDAO9>AnLqxSC^CQiGf-sy z_@|@D{P9mik@@4FiX!vJKLthRkAE_X%pdzk(w3$1kJE{P9aDGJpIcip(FsfFkq9 z&!fov@pC9LfBYZ`6 ziGtzJ5hxh`9FBtF&tWJS{v3*e;m;u`82%iLg5l3(6bye3Lc#FoKoksr4nV>1XMYq7 zfA&Mc@Mm8X41e}P!SH8q6byg%Lc#E75(KNC?f{Mj7^!=K$yF#OpS zg69SVj&+oE9jvkeM{KU!=Fu2F#OpB z1;d|>Q84`32nEBR4N)-s8HIx3&ju(M{;ZFJ;m>*~82+q_g5l3PC>Z{XM8WW9Z4?ZD z)LBa56WfTm5Rzkt>XGIhYe^x-j@Mn1x z41bnG!SH8U6byfsLBa561PX>f!%;B&SsDeypJ6B%{w#%p;m?vN82&7Qg5l5NC>Z`M zhJxYGq9_>tEP{gJ&%!7e{w#!o;m?9782&7P!u)*v%#VWM&wMBt{>+Pl;mZ|CiGtzJ94Hw6%#MQL&ul0d{`?6A!=G7EF#MSX1;d}2Q84_O2?fKS8Bs9& znE?gEpXpIB{Fx2~!=D}$41ZE682%(tF#PF8!SJUG1;d{N3Wh&%6byf2C>Z`I6byfW zg5i%u!SF|*VEE&s;PLo)C>Z{@C>Z`Y$TNSuUyx`1ct8Jl{r}(f|Np)9f0d(1zK!ZG z`c#o`p~_Jt|Bfn0k^CE~97Xa?R5^;|8>n&=$=6ZkD3Y(C%26a=MU|sSzJe-8k$f3d zjw1OIsvJe~MN~P8BCMe=4;If~>>sB#p^8&Tybk~g5rQ6#TNm7_>rhbl*r zycSiCB6$s}97XbKR5^;|Rj6_l$tzLiD3Vv8%26aQN0p;UUWO`1k-QXDjv{#psvJe~ zVpKVb-sB#oZdPs+(NKQeOqe%9n z%26cyP~|9+C!oqvBzsZiD3T3SIf`T*RgNNALzSaQR#D|Bk`+`riewp8jv`q?m7_=& z>B%5IHVUY66v;fQ97QsRDo2sbqRLSuGpKSD$uz1QMe=x5IEv(PsBjd?V^KMVKkyh- zj%IN*Do3$63Y8;S9Er*iERI0sa2AK7au|!lP&t&vp{N|f;t*60W^pholUYngiOL15r7E#Q~`7&tiX6_G7UhD*Lk77nOZj?1ReQEcQlaFBW^DGKs|`RQ6=CCn|fe z*aMY`EGD9|JB!^>*^R|+s2Kk2ii+XSE~ps(OhCo(XJ=Fle|AE}@MlL<41ab&#qei) zR1AN%L&flCTT~2xwn4@4XKPdpf3`x!@MlX@41cyj#qei5DuzGfP%-=&i;CgT=BOC{ zY=(;A&lpq;e@3HX__HZ0hCiF2V)(N$DuzEBp5O{8NQ82+q^is8>Hs2KjN zjEdpUN~jqAtcZ%?&kCp*{w$A*;m>lY82&7ais8>Ps2Ki?K*jK9I4XueOQT}=GYl2O zpQTVS{8j6cxjtMNl#PSr`?=pM_8{{8W#*4~2W94u_y@|&AMrNI%pdU<%FG|}ca)hw;%_K3f5e+8 zGk?SzC^LV=>nJmS#A_%sf5fXOGk?S@C^LV=%P2E{#7ihMf5eL@Gk?SjC^LV=^C&Za z#B(S!f5fvWGk?T0C^LV=(65BQ8am`6DhtnfW6wMw$5|E<&04BQ8Xl`6DhsnfW8mN16E}&O@2` zBhE#c`6JFjnfW8mMw$5|&O({_BhEyb`6JFinfW75N16E}PD7dbBThw``6Et2nfW75 zMw$5|PC}XaBTht_`6H&F%={7kC^LUVAIi)haRSQBAJL04^G7sLX8wpe%FG{8Lz(#_ zswgvmLo_{Mj5AP{{JOD6n_^liYLYW;x=&&J@J2r z=o3Y8jF>DYiJin2Vq>wkSWzq`77(+E9wGf7=xP6V{n!0x{YU*j({J{#@Xw=X{p)_# zKf>SN-<^K3zq!8wJ?X!!znDLdKeONEyWTh6$KKmhf4oos^saYY&l5MP2IYfRH>w5& zgjP4G1|@`6*Q*9agjUz724#d+`>O_pgjV~h2Bm~n`>F=TgjV~g2IYiSd#eTog;sm1 z1|@}7lT?GELaRMhgR(-aJye6jLaT|YL204YDyl(oq1DQ&L3yFoN~%GDq1B42L5ZQ& z3aUYoq1E!LL7Ab|a;ib0q1CdgL8+nDGO9tbq16c0pxhwkf2tZ399n&%8k8JbeXJT3 z9a?>)8k8MceW)4~9$I~%8k8Pd-KiQBA6ng^8k8Se-L4uGAX?p~8k8Vf-KrWCAzIy{ z8k8Ygl~sd6M5~f&P>N_(R1Jy|tqQ6^IigiwH7H25%Bcn=iB_XkgQ7&MO;v-kM5|3y zgTh3sja7rvM5~QdgW^Q14ON5kM5`H9g91gX8B~K3MXTvmgCa$%=~ROuc$i3j#e+LI^~X5 zFR3~Ok5(_LIwg-*FR1zfMm?|U`x|wss_$piC91x!Q5UQFK1N-n>U$e?p{nm?)CHnEm^#P z`W7snM}0ht=TINV;#t(kvUmpd%~?E+`erQtiuxE9e?fgTi>FZEl*N;%Z^GgU)CqND z<8jo9bR-@_oj^z8QPhcZBpyMXFh}BH)QNH=9zvZUN8&-$iE$(zK%Edr;(pYLa3tJWHjl^B36Wd7Ki8`T;#2u&;*+|@uI)RPEZKxC1 zNZg7#VU5Hss1wyl+>AOwjl@l;6VpiCh&myS#0{tu(MVj6IsuKub*K~1NL-6L;f%yJ zs1wadT#Y)xjKo!_6U#_ki8`T-#1*I$$w*v|I)RMDWvCO!NL-3KVT{Bjs1wCVT#PzF zjKoE#6T?Vch&myR#097m!AP8sIsuHtd8iY=NSup0;fusMs1vEB~fK%F2(|4$xuVibuS>Vzl~S=5P8Br>QIph%=qCq9ul9yP)fiQ`Zs zI*~XQHG&g~V^AYDkvJMPLKBIjP$M#tI1)7i6Nw{GBQB9R95uociNjDMDv>x8HG&d} zLr^0okvJGNLK2C|s1cD!9E2JHiNt}Z5sye5fEwY5#QvxejY#Z=8o`LfzNit4NbG|e zp@_uZs1b=s?1dVEh{Pn+h(jdyM2#>+Vh_}aLL?@lMi3&gJ8Hxr61$;B2qLj7YD6Fs zyP!q@A~69q0uYIvQ6m76*as2TpuikjiiET|d&%#51h&rGNp{>+G) z;m-`H8U9RzeSb#BfmkF`6ItZmH8w8g(~w$euXOYM}CPa^GAMxD)UEvjw5l?LF7hJ_Kj>^!Jo{j_op|*A+JoS|)El(l;A5$KQa7irOr1|V5HwP`)RCzJQWI0#r^eDAgKMOgOD&$7H#JMD zn|2rcHu(wdKJZHNugQmKU%~5>mnP3no|vq}-uaEcx=+S@^_}`uy+eEFJ*^(5-`wAz zE>q{IlT?*<&O1!)OTW0^MvYPHsa4eo+Ba`5HKU5-7yJt!;_rBocFnt=ra;%wl;RAE z=pselWQvfT=(qM8V{NR6rLX{ILk}eV(*AS#u6$iSD<7r(@@|q>(C_R|k#(7sNBj@{ zcT2g697((J4U-GfulT2v5I>49#Cx8tkeif)M z1NB9qJ`dDqfqFDhj|A%BKs^+w2Lts$pzaUUeSx|+Q1=AtI>8f zf$9xZBT)4~?G~tA1GP(_CIo8dKAhbG3 z_0tqWs}of}%^|d!qWWnPp;f=?r&)wnqg6jmBedF7_0v2;t4<O(eA1SoPCPLaU8b zKTRdH+EDe=Ttcf+s-GqkT5X{EX*QwN`l_F%6I!jO`e{C))w-&mCKOt&qxxw^q18y$ zPg4r5W>oz&r_gE!)lZWOt)^G~G^@~RI@M3p3axrnKg}z&N~wODSZI}0{WP=Cs$2Eb z)IzH+)lYK^trDuACKsffH&j2(F0^`G_0jY~tJhQ?%`dciRrS#XL#tO*AI&hddRg_+ z6ho_*R3FVTw0cqX(Ii8w7gQh3GPHVL_0cp#tBX`0%`>#RQ1#J7L#qo^AI&thI$!nC zR70!tR3FVXv^rPy(PTrbb5tMAHncih_0e=gtFu%e%{R0<6MZz{a9#R6R3A+^NbHL~ znsAWV2Yoc*Ah9?4Xu?5aFZ9ubgTy5C(S(DP~Ru`v3! zX0ed$+loY7pl?h5KbBODO-RtC(f?iw{_mw=Iu8ExF9p->xew@w_1z^@@9O&4^_^c- z?`lTL=B^icvqR-j$8|LG`X=)c2})MWen`y(<{?t?FIgsBcv7az=fvdY3io zG1a?_QID$L5k@_tdO5Ou=V8^$k>xuNsa}pO-+55=a%B0=1FDxJ%XjWqy&PG-bD!$v z$nu?gRWC=D@ARo&jx66fLG^NE`A)Cu<;e1#hU(?W@}0Ws<;e1#n(F1q@|~*co!_{s zs9ugN-zlqJjx3*cCG6Fa<@(#AS0|S1Z-ZVPSgyY{dUam8{#NMKapn43qF1Mt>u-Tx z9agSC9=$rNTz?#TbyT_jSoG?oa{bNGtAon*XGO2hDc7F`y*j2`e`fURlydzU(W^ts z^=Ck@&M4QP9=$rETz@+B>V$Ir9`x#fa{Ux~bw0WNOsbdTiLOzpUXCZaNTqr?p6Du- z>g9N%%T%hDRFU*hKYm zJb9oSDI8B8h>jdj9+prIjwcU`s|LrDhs9KbSSX z$wNXlIG#MjRfFTnLrgU|o;)bk;CS-nN2G^2FH^p-%|~a zCr`es8akdlPtxrtolm6b_LB}MQgr)CClslhRYOM` z(lJGfZa?XqB9&DQ9aN+;s-csLR9ZE3RFN918ak^;ZLS(RtVnI98ak~=jZqC9SET4B zmd-0ubQ4Pl7OA;aLnjugxl}_(7O6Q^LuVGLIaEW37G>1us-a_x)Mu)(g;8`PZ@f`- zBX68hbR%!9Q8bd98$~zhHZzJwXpB)bLZgkM5!%$Ko0EyU^N4qslgK8HNbH~3J+U3_ zN54U0b=t>nvBW%ynG;>~_P=l9AIIOOUF`l6e=vSW{JQuhv={x9c$xOFJ0!k$d_sJy z_@=ZI{mSvBX$QMG;?u`f?5Eh5v=9B8vFB<3x_e`{#IA~65Ic=_q0h&TqTTEEi0u#? z7uztlChbALL~K6VyY4?@6}><0IlrCUoc5|)T`nsZlk>=#X~%h2d_z0cy)9lAe-RIg zJ7~Z8OT<~UPhD9YCk_#NiwR;Yv8h-`tSpum3yC?z^g_{I^I!V!(;jut`;Ytg`nUL3 z(N6QH`MtD5-BJF5{vQ4g{y5raeocRQe+hp+e^x)~``&lnr`|i>tKQSz!`@y0GykQP zi20A2!l$ngZ>cGK`U>%PHHA-KA^xVO@aZeWn`#Q5zCygArts-2#OrDbpT0u8rvCqQ zJ%yno#I_h^Qd1Z@LR_h)Fm!~tLQP@l2ywZZ!q5@oGBt&v zBmN(I?;Ynxb?*ObMrY15qqYrbnP8mqf~|R96Cx}LwODzrPflO zLr1BrDbJy!)I7>_=qNRp@*Fx!&7nMpj#4L4oPz|YLOW1?oKPRik7Y`}Mfov8Z&H4Lp*JYMpU~@+-&g20%I_oeD&_YU zdWG_P3E>;Erx3m&qlNGd86|{o$Vef4Lq-VU8!}wzSCk(n^h?SQ6}p-7Lxg@o`N2Xz zr~Dp5KcoC0A)KAN3*qeCO$cY_u0l9FcM-zbxw8)l;1(S+Np@8zP zkWYC>h$x>B($s#TkVowo2q|hmUnoiK=Lxygey)&1?dJ$3sC^}q`z5tYYP(-hyQH@J zFttl+yAM&jq_&F{CP{4BwE>@T%wOy<*N&dN5VUqlFvBD(z=VFCP^3VMvwM+iF z_fos$pL-9rOa8fkpmxbW7wb=we=gRaB>!BjKS}<%SbviIbFuy;`R8K&N%GId`jh0J zi}feTKNssyl7BANpCtcWtUpQqxmbUa{ByDXB>Cr_PVJI^?ow)({BxI3yX2p{nA#=( z+|#IC^3Oe$+9m(oQ>b0?&s{|Al7H?(YM1lt%q8`W)W$KF)HhHY$6QihPi-7?Nqrr)am*$452=k~E~zh| zHjcTZKA+k+=92n6YU7wo>T{`$V=k%Bp*D`Wq+UsF9CJy1HnnlgCG}a<#xa-FXHpx- zTvDGwZ5(q+eH^uM%q8_KYU7wo>SL*mV=k#@QX9uyQXfNY9CJy1G_`TeCG}C%#xa-F zM^YQdTv8uFZ5(q+J%idf=8}3(YU7wo>e1B3F_+Y%sEuPTsYg;9$6Qj6pf--Vq#jOf z9CJxMjM@g94m_!cQrjLvL#S<#&|qrYU8one?IzTd+IAJ{L2bJTZAEQ63w5WqorJnk z+m1q8QrkeGEvRjP(B{&N8%BkNz3DENma{&%msXIEh#zf-d(WslBI%TCDd zh3EYb%x;_ABI{?q$aG@wz8CSd{|7R6XKu~hgkAft%3Pkg7|;4&mRXQFJ~Jb80Cwyf znb|GVH`6nd%c%6H=?}19-?QmQ@tprV(>JGYNMHTmyT8F-=`Zo;`N#T){tx_jv_B2c z_20`M><{#}^|!$8d|yx}p6dT1JwXr9-E=GV=37Ts(dBe8okz=P0UeK>`3|5lc%uJq z)R%fvjuiIg`#`^r=lMU1`#kT&eUmrfKE&_gMwwRJC$|{)oz2vT=t+7XJyh?cx6|Ep zN+-M;cI126dkRnT|AY5y@2B3i-Wu%3_f78tJjZ{LcY^n?cm3Z}+hGC2T;car?>cQ; zr)}!Ab)9wNLDg!|F7&PDAR{bq9i%?79QNOLpCX;3d26K=6`XcOZDlt~(IC zWY--Cp4)X7f#-JJMc}zzcM*7Q*Ifjj+jSR#=XTvi;JICQ5qNH`%ZhiL;Iq^1y8py; zyY3C~+^%~=Jh$uK5YN4<{%?OpFGaL*ltz_mFsQ*F7Yj+jS3# z=XTvg;<=aA|83VjB%b@7`fHcg>DzVcy064@yY4IT+^+jdJh$t<63;!M{x7=jEAiZ} z`$|0bxO#O~osO+j{S$QSpP*a+1l{^4=x+Q3yY3#ud)8{#=#_l9^*{oHWs z=Y~^1H=Mib|F(W^IQ4VGseh_Y{Zn=7pQ=;;RGs>#>eN3~r~aurm(<(%R-L|Cr?GV! zQ>Xpwv>%9yJf!ixZ&Q(nG`@E!6?sVGdv{Qghcv!-Clz@}<9qm3oHuXP%#I2Nh%qP2WxhSwhplp@J-->2@l}5}IzKf-Irw%c&qsX!$SRa}rIH2rNV$PyYJI#5_4R^Ot+a-qdkSSEBD6;2mAl?t+irca^55_xSA6&4FE zq{3-J3#f3a(8*LdMQA=1WC=~rqk=4<>A6&pB{V&U3Mb3YokWHCLI+S`p3qb(%oUnK zg*if#sUS;edJ+{*l-DLwL6*?;1S-f9njTLDSwhp}s31#ddMp)W2~Cfof-Irw{iz^J zXnH>?$P$_!NCjC!(*vj=OK7@36=Vrb_oIR=q3OO<;JKyJJ5Yh=mP+@b0?#d#-ku6P zw^VvND##L=?o9=rTPm%oz;jEbJu2|rQfWm6o?BvDXDaaAQfZe8vV^7`D##L=PEbLX z(7Z3HFqz*2?+YsM+){b}q{2jb?R6?l5PFRY9Pv&3l>(vV`XSf(o*P=KY)s zvV`XSj0&=Z=KYikJhxQdPpH6iOXb}}1)f_f@5fZ&xux=cL7sDk|{YQh66rf#;UWyMPKjw^ZKwRM=78m-DE=b4%r& zON9aQ+BsC{FSL>h{e;e@LSLb?sIY_3nN;W_bOsf+7g|Au?Sz(7p|{XMRM=MNKq_n_ zgtL8XA)M{KgmAX^6vElwLkMU4Rzf)2y9?oL?7vL+Mfz7 zLR(WIC)A4yS)ra($O!eILRx4mDx`$EQy~!QMg?DJODahId0S9H^3U6x3X*@`W>k>; z^IE7N`RC=RAo=HIsUZ2M-l2lzpL(0}l79-9wIu%(E^A5tDO}c){8PBBCHbdtSxfRy z;j)(GpL!)rdnWEt?<8ms8i2jv{)hh-{J*s7@Nw?#+)KHqau4P1&E0|h2CvWkAa_OX z+qu=bvvQ~9=3uwM>A8uyy>mlyJLY=lw#)_CYp|MqC;L+N$?RXUzt7&5{Rws&{C>7A z`;F}R+2z@V+1c46u+QMw?5OPS*?!qx*%s`y_!)K?d?WK*=CRD5Gr!IJGIL{QE%q4v zPUfP_%FL3?yv(tgLo<`H!{D&Y&YA5q-81QolirYi7yAqTE&WjXp7d|hKTH2GT~6n* zyWoZCGt#G|PfQ<`J~%x-y(jh-9FX27y?L5a|4eVaM^cGXCh)#NB~F>Z`zDn*WdiS8RN|BgykAp^Qzr0!LnTg`z`LDFoHBv; zE|oZC0`EO4amobV`&8nT33Qf9oHBvVQHfI~&@EKrlnM0iRN|Bg^dKs6$^?23DsjpL z`cNuy$^`l_DsjpLc=|%gq>SUIbjgH_e*R9qr7g^G)Xrc&`Vp#!LRs?Y^gJVoe2DlQUQMa6|e zKc?aWA^4pv1i$%0FHmuw5d7u}!EcTb{7w>jg^DK%y-LLsn3BDyI9q6IDjqMi4Hb_Q znnA@`LPt>XSfL}SI8*2{Djp+rITeoqo^=Lj9>YQfL4bM+gn1;&7p(s5ngMXetgBI);iv zgl1B4un?wdNi%``|1i(h#a-}kG0)Y-of&%R;!X@WMRqiY#XOga1BFIXae&Y$D)tv@ zrD8v!i>Sz{N6y!%$f-xp*Qv;E^~l8=#i@sRE)_ZT$o(c2 zIrYf>78N=5$i0M$oO9DbBUsB!pF@ zuH^8ex{||>k{xsKv#13QSu?WlEV-4+(bh2szmY;&^k7F6vV3% zDgg1Sgi3*URYIjfyegqGAYPSFSrD&Es2qq_B~%NDS0&VDAYPSFn}f!fHq;g%UX@T= zf_POzbp!FLgz66BRSAWa56!C*3M&xuUMZ|Vc)Tj1a9Vr3Dxt6<D6ANGyegsaPI`0scf&jB%}nT$=_AaabCgUMfi16f$@CCTpmoV~5Kch4Wcmju z@O8;_4^9y1lIb0s;2>Qxor4n`OeO9cg2Y8s;=UnBe2q%nHw1}0sl_YHx2K9#s{ z2;3W}#C=2H!jJogz=a?84T1YNDskTsxKC4w`-Z@MhDzKw1n#p`;=UnpVb6U-;KF_q zzX!>!sKk9kknBMv?i+$+Pb!UOj0fgVf^bR06bN3J^I1iN9;LP1a;B8MO?j8cK50(0H_1}Zy ze-DcPUk-}1-X9b1c(*57sx5D~ywLJ^%b#2BY`MAR`j(ECJpShX{FY@c3tEnAIjm)J z%RVhbS_Zak+p;C+Gv{QMV&*+FGd(jQvu9>drhldvuJ}dNeurQ1zvW-x zFZUPV?;Z~Gr}+E&L;W3bZGUrL)93Udy^d!GJWTh{uj!|>9#{4+qp#6QT1<2C- z-QMuu&-jXdn|HByuD29_>oC(h1W)MO%i9Bg&)>_-c}o35y@$VacnZ(wyIb9=eypxh zSE@_ZYIUYM6@TY&B%aPUMvdUVlCNT|BL=oX?t(1DfzG#MV|MG>&EJoX~G89tV&r_GBl*HZ=+V_?u@^bPuYFn*Q{YDR64^k5vz<71h+GB3JZ zPa0H=JizxDd4%s{jit3UA;$u)mNCBGL$|KRARq6Sd65VCf;`Gs{3;LgJw_hq`&hYY zUA*40b- zSf;+jyy$X$u|dUnnn6$Rj;|08%CHCoNQu<3A3vX!P@{0$W7X^8ktN7Ka=2ef82fBWG1&+ld zUCqctT}rROu`t%fu}pn}9LwN%gNk3}(XPkHAD*9HjvwIhu4d!`FQu2`SQzo*SfV+`O3lWQBnK}{{?-wIStYYMd^%yx~ee`{;t8rH1y=UZzCHfr4Lc|6xzsO@? zL5^6(uX4nCj2y8(eTHLk#A-&4SfbBxEJQ4hW$JR?GjhZ#MvhpIkt5cpPw}%Hv6_)1 zmgrL)3lWQBnK}{{zat|@tYYMd^%yx~eLNeebv1vPT2~EQ1`e zijgDMW8{eS=@a|_N33S#h$Z?2$3n#7Sf-AIHODf@Uueb15$iE>#QL-WKfn>I898E! zHsDx@SRBjLk+9}i203CCBS);q$Pw#P4L{(RpVf>Uu|zf9x(X4CW1+qZ32TmJkRw(x za>RO!9I-xC@dF&Onvo-xsET7DVsR`}N5Yz889dXVV&sVR7&&5n+%?&{iX&Dta>NpK z;#i1S9Lv;^u;y3>IbszfN36%l5$n^(_<>W+&uYd~3=(~eV=dxinfgLGmca!E760hT z20h0427Uacb?d5m1~nt6E$Q8GETk>^AyenD6-3zLSo|udt;fh|>*H^=TUT+~YDP|5 z!c&@CS0Qb2EK}#O6-3yYW0_YuZ9PU#TOWVz-MWg?Rx@(ilHLW!LfYb3rp{q2h_E%s zGOu#ldW@X5KK@?3brq+rX5_Rbj7wWrA#HIiQ|GW1MA({RnO8Y&Jw{GjAAfP)x{A|Q zGjiGz?ptkLg|x-7Or6745MgVMWnSg9^%yyAef-UO>ncuL&B$p>dPf`!X^Uf-I)|+w z!qyziyvk|oF>>1axci}X6{oFcYnmZ@{t3LKwL$ z2wQV3^D3vU$H-~x;~tLIRh+h(k<*s&OtRKhNLw7s)H!Sg5w_-7=2cExkCD^X$6X+; zt2k{nBd0CtzBm@r7RNGm4qHKltvQx?mDAQ^g)0T7}91CfSW0^XKtsuhI9Lv1QY3ng^+WNSc zrF9jjt!Cu3CA~e4g|x-7Or6745MgVMWnSg9^%yyAecTPxx{A|QGjiGzW_GQskhVCM zsdLyGT>T}&)*Q)1xY3t*Dn$=%&+G<8lThhI;(45!`HOtRGo;FLl;}2YYtna((@B?R0 zo<8oN*^{PDo-upyh}naOPaJpHVR&uukS3);^G`Z^?DFOFRxF=&_{zmAR?a$n;oNzr zESz)7_ys2}J8{m6dCQj1I&9wZC1)&~GjI8JXIqB4eizh8S zc>(|2f6@$$mo+gS9&K!u;xi641LM=17!Qj!wo36Chnj)$(k8}3qm8Xne8!<>V7#P> z@sMa^s}!Gcs2Lb9-qbj0o%cfq&mKGs-@Jpu-#oh%n{l`q7@rnxJb2GYW4jcaakv>6 zpW4KDbhNQmiqAOI42(}{VmvC^*ebpK+)e7|(BFj2pK+)e7$4un7(Gsuu~mxCIMmGlo%8?i2AjUizLm&>apsSnIQA>&|5ho! zcRAF|>OtT2n;7HFk21DO@fnAjfiX2P#+e^wY?b0O4mAT~-NYDYew49QiqAOI42-=d z#u)8I8C#|Jj6==97`Ll#TzPBw=3%rKWo(t=GY&Na<75+KjP|08tx|l(p=Mz0ZfZ6Cz=>zv=?P;mEtoFHG`4G zg-wjn<3t%-rTC0P&A|AACdTM-qKvIle8!<>V0?ZPWAr#t##Sjl<4`j&KCg)}dYmX@ zs}!Gcs2Lca+r$_>PL#1#iqAOI42;idVvHUq%GfH!XB=t<#w(i`qsNIdwo36Chnj)$ z*_#^MSM*Ge6LCe)F2!aXZU)9@MH`zQC&Jh+#bz9C2F7PLF-DIQWo(t=GY&Na<1?BV zqsNIdwo36Chnj)$iYCVBaiWZ^QhdgtW@P?Dl{sOj#jox z@hOLzfpYJ<@>jgeqoS3qQhdsxW}v)nGv$%d%2p{p;vQ>&tIn)f4do@!Y7OiZR;!_Sa1LdA|<*!JLq0!1#DL&;;Gf?i)OnFGOvQ>&t zIn)g1|63X5t~VjBNwc42-)+8=KMIMlI`?u}iTThns4o%z<7%$#u)8I8C#|Jj6==9c=IO4SmB5= zwo36Chnj)$W=)K-!VzU`mEtoFH3Q?8CdOFdh%&ZH@fnAjfpM;hF;+ODjIC09#-V0l zoNZ!^6^Tc!Bk&`>i_9=@q^##Y8z zK4j?FBM$lMvE?SE*pzJp(+re{HBrWCzKK`k;Bu2vY|6I5e<%-ari^8ch&tIn)f42R2hi-xH;5mEuzlH3Q`V&6LsiL@8UP z_>@D zDWmU+QnpI*DTkVYa-X_#_}Z!Idm^q-+ojl)!_EB5&;JjszoD4_x7fpp!8p%HOqn*} zD~1zxDYiE>+zifv1DYx0JdaYgO7SU&nt}4vX399vqm->ue9EC_pgd($<(z$DnDcx% z7KS2LSvHnpQ??CEGf!d15nV zjPjzCtx|l-p=O{wp_wv9c~Qz%DL&;;Gf*DiOc|rRC}pb@pK_=fD35EVj8R^cvQ>&t zIn)f4$2L<&?-!+PmEuzlH3Q`_&6LsiL@8UP_>@D&tIn)f4M>bPN-xH;5mEuzlHS;e&|L3P{bY1`7+@D!Bj8Wc3FI(9v#itx<2Fk}YQ^qJSO4%yKryObq z%11X-#wagJ*($}S9BKy2M>SJM-xH;5mEuzlH3Q`%n<=C3iBh&o@hOLzf$|Z}l+pJ@ zDO;uZltaxxc}6p3^gU6^Rw+K^P%}_IyqPlko+xFj6rXaa87LpNsdB@`C)4*tTo$oQ zu_=d}f%2hEluh3gp=_68Qw}!+&tIn)f44{D~2z9&lAD#fQ9YUW>l{?AX@=$htj z*)adddA{dC6DNPg1O!h3+@uuW8yac`=Kw!uBT5$_pOLh#wagJ*($}S9BKy2ym3XB@)mZ;nNi+ogxpu$$x3K6^Zn!LB`ksi(B6cY@ z<#01lp10{VuR+=LJrT-wDK_PBGf?JDEF#`z^GC5!%2p{p@D&tIn)f4dEbgCh=_O0xw%-7S8rFTdz3GN8e{xS4JUDe~gHuZwqJ$bJCXSatlFY)vLp@;uPG=t91 zdiq9B`=(?(_;2X&vE#;$|B7t@tWtb$a;TZrgD&HzZ*)Cwx`%ZauNn9a8$0Q%jO|iv z#^GjQ%n#rAYGX6*i!ioJu^ES(fiXXOBf=QNz9?g>6rXXZ85r|^77@l6^+g$5rTC0P z&A^zqvxqRppfAeUD#d3UY6ixhqi zWxQ3W&l@^+%ESrbUfOg<8%wbnhns;h?_=@R#-_*FsAc^!b}2UFa5FHrwz06^V~i;y zjjd9A#-V0lY;9xFV2mCo>OHnf@fnAjfw8rXMT0SVoG4?f6rXXZ85mpJSTq=;$B8nw zO7R(ont`#kjYWeodYmX@s}!Gcs2Lbr+gLOhqsNIdwo36Chnj)0wT(rCF?yURW2+RO zai|#>TiaMP7^BCDGPX+b8Hbv|)Rece=$ijGToy51PQ>MEyA+#pxS4;Kl1Hnz4e z+TiJXLr0FCa>%&wD8eqq_J)R=!8u?(X`@jYr+JjJRfd-QnpI*DTkVYvbC2*!zB>Y_e5L*u}iTjhns=2wUMjmqeIqLi&te9EC_plt1B(Ws2RCra5W#itx< z2Fli67LCg2d!m%BQhdsxW}s~CWzndNz9&lAD#fQ9Y6i;IUKWkY=zF4+tx|l-p=O|L z?PbxZjJ_vI*($}S9BSrYe*SMgX=7V^nuq8A4IPbX-dElKZZ3EK`l&!ri8kEf_Z=+Y}D&EFYY|6I5 ze<)jfSu`qRl(*5#R<=sd-QnpI*DTkVYvbC2*qcZxQC}pb@pK_=fC|i43G+Y)jeNV(?5xW$da<~~N zTYFhFD4V_~LfJ0GrW|et%GO>MjmqeIqLi&te9EC_plt1B(Ws2RCra5W#itx<2Fli6 z7LCg2d!m%BQhdsxW}s~CWzndNz9&lAD#fQ9Y6i;IUKWkY=zF4+tx|l-p=SQ&=l|A| zHnwZH*MHRPVS~pWKINt@#incTDO;uZ zltaxx+1ksZQ5kC-QOZ^+KIKp|P`386XjH};N0hQvicdMz43w?CEE+D0n7$|CvWQ)Z zO*z~Ql&!ri8k9}n6QOLEVp9$`17&M3i$-PiJyFV5DL&;;Gf=knvS?IB-xH;5mEuzl zH3Ma9FN;QH^gU6^Rw+K^P&5DX^MC6}8-47dG0yX0L&r`W_f_+Ms}$cG8fpgTfc2z} zM&;4b%2p{pMqEQ)rPn5D%icdMz43w?CEE<*3_e3dMrTCOX%|O}O z%c4;keNU9KRf&tIn)f4t-UN7 zmC^S^DO;uZltaxx+1ksZQ5k(tl(JQdPdU^Kl&!ri8kN!aL@8UP_>@DMqT#ZL z>3bqBq}rv}l*7$H+1ksZLD}>@5z2NcHsx?LP`386XjDeu6QyjG;!_SaW9I)`Bo~?I z|6P@RBRf2^I{jdJo795fmx1d~r#1R5J<_{KJ*;{s7rD2%$~iRggNO(7#q+Xzzj@HK zJd-DI``H(haGsBtHvRC4;Xm`nV*ocP#rKAWnpwTa<@}rtc?Lw__6^-LJ#6^c1E+n( zl7;ySY%Im59Bu~6{Gg2pWpkcy^s+wys}!5EZD5*#@+ME(2))aA^iia;RfMjmjA1MJZdQ_>@DMqEQ*6yeMU>6rXaa87NzO zSu`r6?}<{jO7SU&nt`&lm&Fd@-ftLszlc?qjiuO>P48zn17&M3iw0%W_iX$Jq26y} zDK=%>z%&D8YcGpNW%NB8y=-Nx6rXaa87NzOSu`r6?}<{jO7SU&nt`&lmqnv8`kp9d zs}!Gds2M0*ds#Fpqwk4Qwo36Shnj)1wU@DMqEQ)rPn5D%icdMz43w?CEE<*3_e3dMrTCOX%|O}O%c9}3i0OMGE{oWu z*p$P~WSvT4i^PWsJmvp#^_VSUV;*CXJmoWA@<(&X_iPFupjl+;RA{!9&muMV0=me_gPo9n|Pm`ujo-uoHsF_5<{bqo7*{p#aXmqC>aqzU+!w*|Lx za+I-EiqAOI42-R6TU&3~#wHFUjO|iv#^GjQY;C>KV2m`3 zGPX+b8HbvIv9U~Fx@(O`^~nJ8nc6rXXZ85mnzZ!{RA$B8nw zO7R(ont^e*jTe9Y#*4q`aiWZ^QhdgtW?*b>z0vRh;ufsmD|Ir|wSOmilSxhpCR#6{$;87p2Zg zot|2dnw>f_b#Q7zYVXw0)Xu3ssUE3Z$_qXVJ`COno(moe{v7-k_Y&L~tPQRVz7t#& ztPGX}^MYf8Lxah|zQM3y=V1Gwdyozse}n(7|BC-N{~`Y#|2O{6{2%&dKkt9bztBI! zKgB=MKgvJYAMfw!@8J*dxA8akiT+6+(_8cc{gv*g-_b4fW2#VzE~Bs0xpX?6OvlmT zG?n(J5wt7qKs_i+N&OG~zJ5(VqaV?K)OYA#=JkFTJYwj`x!Hr1ux^_ug&ZPrUWs_q{gn8{YZea&MtG+dINL&>QQG@^<(7 zdA+rZ)J1BgTB7EuW7VN*vf5V-Q#-5eRdi$5@7Ox?@awZXz&0c77L}*9GTx!8u*9 zvJ1}cg0s5d%q}>i3s!W&@-A4`1*dnx(k@ui1qXJ)0bMY)3#N3zy9)G-`ytgH0X)GJEVI`$CyD|HMKdYn3T z7kZ33b`yG(I(8L$ggSN+dYC$P7J7&}b`pA!I(8KL3v~<>dVo3x2;EN|{e|wMj($Ra zrjEWsf1-{Zg#Jh!eT43%j_rl+p^oi@uBDFNLhGqxTcLH-v5ioLI<^+NhB|r)t)-5h zLRV8q51}7W$5uie)X`n2OdZ{X)=hsFg}zN4p3o)Kp@a^hj-=3Z>Trd+ zQ->qejXDxc?o(90Q0Pf2Um$cnmCqNtj>_i=okQhwg;rAe9H9wRUMV!5%4ZAZsC<@C zmda-`InPr0454SJyh7*(DlZp8Ys-XAq4McMi>SO*Xd#uC2rZ!UVxg0%e45aFDxWGe zkIJVA&86}pp*d7uD0C8)7YLn5<&%X@pz?g7*;JkWd zs2i0JU`l*M<*7m+QhAEd2UMOc^gfj*3B5<t13%x?+y@Xz-@}5F3QF*k`i&P#Z^a7Pf z3f)2F5kj|9S@JLO8!AiwC4Nn1$-l&HRF?cp+)8E1zr-z6mi$Znipr9IiCqrLWlIn$e~Hypmi$Ys(q)r>j=E5nP5e3P z0$n!g=cw~_*@T~?&eLU+eU3U;mre9J>Kt7*$>*q*x@>~aQD^J2$vsD%rOPJv9CfBH zo78jE8M>$p95qFkP1HGRvM!sXbJQeVHbLj8iMniZ&QTL|87CWHye^xRbJRFp zHX-Mzv3iZkI7f}qYfQvBYJa`PB%Gu6(`!t?Ici_M#^jr$_R(uhyg6zwy~d=QqxRHm zOt?8}v|eMf%~46c#zdQ=T)oC5o1^wN*UQvZKym?X25=2ceG^{+t)B*=(+B+xw1Vj= z&?2TMK_@Uh0XmZDub_jN9tVwMdJHt0=~2)irbj^inH~mh&GZmxGo}YYn&~fzMDlZ{ z2S6V&-4A+`=|0f&On(MF&h#hHeN2A@-Nke-=vPelfPTbuE$AAi^`IitI?#8SDxj}1 zT?0CYX)S0e)77B)Ot{}TIg6i$Nb=yB>5B({-Suna%-CV_FHCz%&807t?sqV5S^s zAQNu!cDFU;JPX305A+PkXSyMgaK2zdYfdNADWJER7J*)5S_pcAX#wZ~rjtQ;GtCFx z$}|sj6VqJKI;J_GtC&s#UCwkO=whZ5K<6>d1}$Sc9<+ezIMDG-vp_SLjs+dSG!rz2 z=@`&RrlUc-G3^NI%QO(wlW71b$J8IBnEK%h`YBUi&<9LAfL>?n1A3Ned(fjy+kyVX z)Ejgs)3%_SnYIDlz_c~!YNlSG?=kfRUCPu0)XKCK=xipO8;QkCI5!e=4JAGT&1Axv zm^g$9XJTR!)BB)(nBD^oWqKF16Vu;8+cCWZ>c;doD8=+vHkg_yCRZhbF~O){P%t3a zHrO&qVK)AW|Gxja|D6B0f4_gXf1CeP%*Q+YEBs6Si~Mu^)BOehZ2w5i$S3%F`$PSm z{XTvVKj(Y&Ip*YV(~I;3JwSKUt#lKuqpRq0x|q(RWwd~frx|nrjiHgW8}+50lq01- z)gS2B^|Sg>{U?2=zFFU(uh!qwm+Dr1wqC5~>Y4fwJxTAQhw7d5cDkER>4aDF{_ef( zJ>@;<{lWXS_fzj$Z;jXPebc+ZTj4G8PVkQO4)Vr%qrE|1e{XAVGf%6})ko@0^}Kpq z-KXwSzfwO^*QlcUuKJofM=e$J)huMqYk54T^%Jy~$75RmmDcijOzX#K zEsw{vevH=gcuea@X)TY(w0?xv@_0<^hiNU3$FzQk*7A5v>j!BqkH@tB3$5kxnAQ)_ zS{{#SeLt<`@tD^4(OMplY5iwf%i}Sv|3qtfJf`&@X)TY(w7!?t@_0<^duT0>$F!z( zX3XRIxaOJ(D786D|8%H<_OKA%1J`UQsqRUnN&GJ=oqTZ7CM?L z#|!O9mE(j4Qe~FV0ID1-)SoIdh5AwD7@@vYIa+83svITMhbl)3ZBLaWgtns!Px5@H zH&u9&=R4a{g(rEwvkg^vlIJ^HQ{@o(7rm%5U8pBjrU~_+%E3ZgQRN_^?o>HYs2f!d zV8SG?GF9k9s!S33fGU%P-lxhWq4%gVQRrQ&Oc44zRmKawLzQttZ&PKg&|6d)BlIR! z_7{4CD*Fk&PL+LyUZcuBLa$O~Z=qMHvX{`yRM}JLC8~@TdXXxlgkGS^NTEBZGD7Hf zs_-Pw$0V=9lRO`jyb4e9d`$8xJjwGh$*XXv_?YBXI8=O0@+urEJ|=k;4iz7hyb6bk zk4avIL&e7=ufn0?W0F_lQ1LOzt8l3JnB-MBRD4YGDjX_4CV3SO6(5tl3Wti1NnV9R z#m6MC(pT*9P2o`SG0CfNsQ8%VRX9|9O!6umDn2H8mEQ6%R#RnLp;fxF4ao5?)RnCn zF3^=;4Cm`gPloe!r3b^gy0R6+Il9uFVWqC{B+oxvS9p@=pQS52$@994WL+^y=lGL!#RQ$>Pt+BYbB;ejS6qg1x?)n!@yF_l2|33fqpvX;=lJ{U zYfQvB{(kxzlW>l|ufE0voa67KuQB=N_64i-q0`4PVM3=5XTpR|Pi4Y{PGiv*?P5ZwM=)VRr*~z-gii0kgbAJQ!E_%e z%Y+G?PBLLa=lz2T6FTpGrh7rJG2H`thUr?+BTVZ-e`Lah&bx!D0{R8hHK6O6Fro8) zz;rd}3MNeGyl*pMLg%e!!i3H{iwP4t?=&V%=sYZX<9E9XbPQ7oG@Ypkn#hC+owqj= zCUo8qCQRtO9hoqp^LjI3Lg#I1$V})wEP8`5j8>OqkHAcbG7tQ!g=H0(z1O z6FT)5CQRtm@0l=YSGO@?(5`-B$V}+edM144>ibNXVww3rs+iEJZ!nz$I-hAJXgL!m zbZQ|J&MP&W2@^VX1QRB7>OezgLZ`+uVM3=yG2H;#oyoM;j|mex)r)BnsD%j=I^{88 zLYMrE2@^WJH|EHg&?Vnsng@E02@|^HV@z{Ee`Y!f^jjuO=#sx=IstSe6DD-YwM>}M zC9h<{gf96VCQRs(7cpT%mt4s-6SRcs7|=YXqd~_qVM3QYlnE2M9 z>Id4HsV``ICQRs(-I@A;(oC4pB^@SA=-drVn9#ZJGGRjJzQTkFo%=VYtw9el^#a|) z)D!d@CQRtupD|%V=l+lh=Z0Hm!nxt*4Vej@`z1NQ$Ouqmf$Mkd1;Y>dRO=bEiXn&@kfJQLg1lpD9$DkdUegx{lbR#Isgl~$I zWWqNk@ed|^FB9)G{SfpT6H+hn3{xxU5vJ9kKQgTX-GMHEE(Boy@6ZK+8x5QfxW>SF z0Q~+AoeRMFheP<*%SAtY>E)u|*#Lb04xI(S`j10r0_GSv1AzIzLn{D>8dwgPVqh5n zzrRDL1F-(#&{Dwe29^N&8#oYv&)=Z~09gNVXeuBuFa=rS%)r^(Qfv8p%gZfKwLIAJ zhn8Qr{IuoTmNhNyE#GXppk+nNqLvd{j%+!oWn9bXmO(B3Tefc5tVQQO&wZ48GxvP% z@!Wm6yK=wE{U~=$u9*97?rXVoa!YgbbF*@X<)-BJ%MH)%lIxS(DwoN**-x_XWnaxc zoqafaZ}#@=&$HKMJFu=%v^aXYPudb(D=$+}E z=FRbr@uqtdy}i95-i}^xZ%Z#wU#hBlN4=z;RDV&wSGTF3sP*dms!e@Eov)Uwg=)4s zLLI2as!?ip)lc5^(3iBqj9}fgPS6H3gatXY!Hi)+urh;KP?9#7Q7lN&1~ZHWd9=Zd zV?mlWn1L*)H*GK@Stc&eFEEocJO%&--5w&`Z}2W!Rc(hnOECX9U%z3yq}OG@(&cJ6NcdY6l5jM70BjzDBhJ zguYI-sX`Z1ZHmx0s5V&$zt|)p{9+S@@QY0ldY5YBh2EpuIHC8cHkQf7DK|z4r`-NR zIOX;eI+|+x3LQhWeS~IGZEvA(Qf)6Ge0+Nf;o}=EbPLr+3EfJykwUjoZG;dEh6{Z_ zwP8XZQf;WvM^qak^fA>2GbM4-?;*4!)dmUeM77<8cBa~HLMKvfSD}-rwu{gls_iT^ zmufo+t)beELS?EA6zZVb0HGgHt-sJiRO=`7FxC1BJwmk|gdU|@A0`!0ZF`{<)wUB# zQ?0j9hHBdiWvRA}P>yO_3$;+Km(XTZt;P zH4Z;gI3qaxNa2&=@FRs!hQp5(J{b-_QutzV_>saFi^Go;zE~W7r0~V!@FR5@)j0e} z;fuxLM+#po4nI=(VsZG9%2SQQk5qwb9Dby(pc;oCsRyaX;YSMZB!?dt#OmBWubm#Q3oni9svLgg&7&%ZA9?es%Hc=e$yDX= zBX0p!IsC}GlByhjn$=svLf#Poye` zpVrS%mBUZ#XQ|5Jr}cAGpVl8ymGe*QkEzP}r*$V)Isde- zQkC;h>l#%#|FqsfRn9-HKcOn;pVt4ND(9cp_yjrsw8kgM`KL8LLC!y||4CKOKdrx@ zD(9cpUs9FxPg8=boPU~dj&uHL!a2_Qr*V5;mGe)NqAKT~CXcF|f0{H^IsY^fRXP7O z`Bdfn(-csZ^G{QXs+@nC(p2UA)0Ckq=by&?u~p7LjjM81&Oc2pROS5Bv>8=7|1@n* zRn9+6TTqqrPt%rE<^0psjjEh~nz~b!^H0-OROS5BxC^(+`KNL1ugdwSsTWl_|1{wo z=ls)zbDZ-}6V7qYKTW-<%K4{hJF0U2Y1*EuoPV17P?hsf<6hq?=by$E#wzEZrhZiA z{L|E*s+@nC22hprPt!oEa{g)Bk*b`3ns%Zp=bxsXsml4MX&0(;{%PD%T;=@JxQlSA+I?9H11oja{g&t zEv<6?X&ObHoPU}|Qzz%2rah^X^H0-W)XDj$X>aP}{L{1#b#ne`+Lt;x|1|AKot%Ff zcSm<}{%Ks3?d1H^G?qF!|1^!GPR>6~g4>>G>tkr|1?dfPR>6~hfpWy zpQb~plk-p0Vbsa_r*WruC+DBW_2o{^KTStaC+DB0BdL?~Pt#G<$@!=0XzJwr({v1V za{g(WNu82^bS!mB{?RPzl>Ec}DPP z)G7H#bE#AEkLFRQw3s?2|7ZzyO8(JO>XiJW)2UPPkCtKnpLmmc{GXrypPV~BcSP=>-1yvHxgoio za@%7CAe&R!&$1t7-^#w2eKPxC_8zPO{33fpc5Swpy)1ii_WbOM>?v3UI3{~Yc5-&V z?1=1c*?!rrvzuor^Uuu3nYS`8Wd54DKl8iHEtwx@Dw$H|vdq^r=VngNoSZo>b9iQI zX8+8H%&wUoGCeZcOfvnC^!w@8($AzHN&hi@NBS4(>(f6-Uy=THdUg7&^l9li>0{E< z(-YHsr-!6>O!vlLJOrsPQ`OWvsh3hurv8%pJ^tR|C#m(R@2A>Q-$5m{R3&P+}pd!|~qlZ9;@oNu*uq=opKLXm13D=M0wm8ByCAlq*9tZW|>R&-yF+BmwFg*!!nV!Nb z@h41w1HH%eH0V{PXFyLgJqvo6={eB7OwWUEXTo~1+!jYKg0AD&u&yk(#Szw;<+eD& z`m@{?M_7|~SMkr8b?P&j%-S`UMe)0t_3V?F%o_L6OlIAC8k1QIpTK0+$M<3~YvzNQ z-USV0GHdJGGMV*uEQ{jEW)0qF!n(ZN7DrgCm)qj#W6;}N?F7BZR0Tc3R0BQ0v;lNC z(r9g@)jpjaO%78v#GX2HtOgYfAOf8^C znKlFciD`4tolIMRuq+PyEkQRhbpu_^)E)FarmaAiGW7tpGW7(V&D0CDm}zU!T&8V6 zGnuvp9m3QbG>K_D&^}DtgN8Eo0qw-J186&@zMyVQ{Xi+E{TTKSk?#*c0d{X*~~n0^EDFo`*ew{wuBLVNakRr}aGS32^VxdLH%!xc6v14|@XK zd$gX1Jpt}LTF=9t0QVlP=V4EPdym%huqVL1N9%dm6X4#X^*rneaPQH29`*#d_h>y2 zdji~hw4R4O0q#9o&%>So_a3e1VNZa2kJj_BC&0Z&>v`A{=xb>`4|@W=p4RiQC(!F? zJr8>VTzX&6!=6B2L+g3i6X>as_QcFx$mp~uX6{5rr#&%q2QoVCiJ9Ax(P>XiE|bdWv?nH)No91} z6O+rNGCJ*v$z@U*o%Y1!GO3JCdt$*7WOUjSlgp$sI_-(cWm1``b{~()Wm1_bto@Lg z%vuhaNvvg&nW!a~No96n$!ESZD~rrdtRZA}WGzBw2i8Jlwr5R6W&&#pGTX6I$ZX3R zKxP{)xlAgvHS2w3wqoUw*^(vywJlhuA+tGa7BZW$W+JmG>r`YmVV#1^#;h60Y{Z(5 z%!aI!k=cNC5;E(vPDExs)(Ob0%Q_yJby&wCGoE!UGHbJrL1rB5Xk^x69fizT){)4p z$vOg=HCTruvpQ>CWL9IXgUqU|@yM*glHb9VS>updiM19oE3(ESvjS^PWR_>Gfy{EO z)sb12wHh+ZuvSH8Y1S&pEX7(GnK7)DkQrpHh)jyL0x|=v<&jCUWZy`zWZ#Hu$z@WR z7)$oVC`UgFLr@RTl~D(`6g}c^J3?jw589B zEi!2CayD%RISUvu z|1^I#zcZhjcg!!%i*m<&!{p5)=5BM7xzb!<&M`C1apn*+%}g@envKmkv$9#rMCG3O zzeT=_d=Ys+@h(y!cVbDqnH=!Xm4D z#pO$ktnw9?FE+BuS6sgA$SPlP`2r-Xe8uHUk*x9+moG}P%2!;zJjp6warr_et9->} zv5Tzb%ZndrvQ{rIeuT+dyuA3~CTs2T;)j{6rOS&SYO+=?FMf#0TDZLU!6s|n^5O@X ztYyoKA84{xEiZn6$y&6$`2Hqq&GO>=nXDzti|=c)RxB^RkI7oFy!hTGYrXQ~(@fTK z<;C|hS*w*7-_v9*R$hD$leJcP@!d_WGg&K@7vI%nlNwV^HlZ=aWaAo>O*W=6 z$z-D%6HOKxyU6k$8atb8L}MqD4QuRZvVq19ChKc#Z?c}o1d|PEY-ffp)Y#SxE!Nn^ z3|*kHwHZ2JV=FUsp2n7DXpzPiW@w?t=4NPt#%5;dT#Zf5(0q+e%+NfIjm^+pjg8FE zIT{<9p|dqMFhgf)tZ#L5$vc{@r=p>C*Fm$4XAD1ughE8C8j-lgOpJC`Y z)~6Ucmh}mSj$wU_p`%$JVdyB<_ax2eP+(rlGA7A zY%Mu`W=_?T(`V*bEjfK=4%U*>XJ#)gIelg(YRTy{vyGOVJ~JC>$>}q*mX@48Gb?Jz z=`)kklGA4vM|o9p`YiHyEjfJ_`Gc06K8t*%C8y6KA84&9^@f(5K8w7pC8y6K!&-9s zEYi?gTPmkDUg{yOb)@dlT36~it@WfX(OO?>fz}36XJ~CGb+Xn*Qb%fSEVaMZCQ`d; zZ7Q{+)@D*$Xl*XFp4Jvpt7~m3wXD`wQgN-Vr9xWU$cg{IX>BX@d#&xHKGT{Y^^Vr| zQm<+4AoaY~j#5u*?Icyv+F9x`tzD$<)0!xCi`FEmtF$IdE!LVMHCJn@)GV!CrHj#umDb5p8)!|JT2pI=)bd)VNF}vSmGZS_ z%8CD;)-0*-wN8`zLhE#?_q1k9y{>hJ)QehYNcI#Fw()Zto-r1sT1Pim^x`BK|!T_ClY)?%r3v@VodRqGpH1>w62%BN$UowE3|HuI$!H1sk60imO54I7O7*kZk0M%>o%#qv~HK0sC9?bHd=Q| zZKQRV)LL41ORcDNk5o$QUa7FweIfTn2kw{pgZ}IRsjsvil=?vHA*naC9+rAp>k+A8 ztw*IAT4|}ARz~U}t;eM9(0W|zI;|n8OSH053$$`lXK3Z6PSz?&9jR56+Fz?AwVPI1 zYDcY#)D~J*sr9sKQmbp#rIyudNX5091M(&u>Ni7!ql4cMemVHT;I9W?9UK|#43^~% zfcpn;8@zV#lEH<8a|TZtJZA8q!953e8Qgks!@;qGD+~?{2C07Pht!v;_fx-0y_8y# zs;9E42UEAFu1#H>IyW^tbyDhx)PAX5Q#;5N0PCh!OD&U%4g56l*MV;bK9%qPe=+df zz!L-Ify}_Y12+#`Dc}B|Gca@DxPe0krVUIQ*mhuJ`R;$Efx&@D@*l}RCcjR8nEZ9} zmE<$YW-_0AIC*FC`sAg_g~>CM)00Of4@mBw+$p(ba{c5Q$>oxXq?Z^?e3$q<@owUm zi5C)2C8~+X6Za=>OCFo)SMMeo%bR_%89S;~U1u$~uPw@gUZZ{Sf;y_I~VF zv6o^?V)a-y_F(Mx*tM~XW9P?$Mlrrqzbh%dL0J-jFC%J}beYqZLIk~pWGo$7^^SOCf&f2_So-$SQ zxU7?NtGU`-Xy%#I%n9Z&vyYi#CYVjlc(aO}vq9uvkv~U%8~Hf$R^(@q5jkU1j652- zJ91;>^2m9Svm&R+`I>_wdq#GNY#rG!GB&b8WI)c=^us@dzYM=0{#E#;@RD#{&ec2^ zzCCM9iM0jD3AQ(^^s#3{7~3igmwYIPLsF{jjODA$DQ)0E1?juRz$%bdCJdLKtU;rdsm_m(w})(Aa4&oJsGb0jSi)$lD`Osf&=ehoDjyB5#jDr4}P^4??9bK;9mON}Z3qJq(pP4|#hW zDzylCdmt*c5P5qfDzyN4dnhV(F7ozRRBAr*_FzvZI&vra?a9+%3W&O-hq)=cDi zWa^!YJdaGhQ;wws9+`U6k>`=AcQW!kGWAYEo=2wMiOBQF)H?xr9+`T_BhMpK z?>OY`k*WN5k44@dno1pmygfFRIvROPY16;i=RS$lK#nsl$=C2dGkq zA#aaRr4B{j9->Meg1kLOl{y%Cdyp!15c2jYRq8|(!P*Y_&9&r0()?zu<&fW$wJh?Ru$Do7W7g8hZ^T*(`3+fPkl%nci2VAj z6!Pn_29RG@%i9+Dby(XVKc2NU@@uoULVg@;OXSyLZGrq)*5=5s$=VG0HCUS>zdCCZ zt`4w2}BJccL2YKh;c;uabYa{Rc8;88} zZ!P4Ve`Aq%{;i3;^KT90oqww%@BCX0dFS7%$kRVrULsHbWO<1^{qt5rp8k0&%CN-O zw*vC?&y!D!{(16g(LYZg>bIr=9TU+3tbT#%ike{zv_j{eDo+d29t7jx(6pIqRbqknSIcaHvrenO7^ zg?>bi{)PU99Q_OZ6FK@9`Ui6KFZ6fh=wGOh9Q_ORkfVR0QRL`f=x@l;ztCTiqko~l zAV>c~e@2e}$+z4&`WN~ma`Z3s2ju8q=m+HJU+8<}=wIkNL6+f1%$Y zNB`to?i~G-D^YXwFZ4BX^e^-ka`Z3sC35sH^aXPCFZ4Nb^e^-oa`Z3sDRT5L^a*nG zFZ3~T^e^-ga`Z3sA#(ID^Z|18FZ4cg^e^-ta`Z3sE^_oQ^bT_LFZ3Ja=wIk<ZcC!K$?PtrfRtsqDL^e^->a`Z3s5_0q}^dfTfFZ2R(^e^;0a`Z3s9CGw8^el4pFEoN2{R?%G zqko}ikfVR0VdUsvXbE!kFZ48W^iQry$k9K!CLu@vQT7s?<<|3YbG>0jtkWa(e%5oGCK z=wW2(U+5uZ>0jtUWa(e%0c7c4=ze7BU+6w$>0jtxWa(e%9%SiX=x$``U+6Am>0jth zWa(e%4rJ+H=yqi3U+6Yu>0jtpWa(e%7G&w4+#Hjoe{#c2mj202G+Fv5H`Zk7pWJMd zrGIh*PL}@3O*vWmCpYS3>7U%Zlcj%hLr>QEcQdliznhSC{@sYI^X~>^oqyLO>-@V8 zS?Axi$U6V7LDuOxB|3#pjx=HP4HmW3rY!FMhVkTJgO2Ste`2^Wt+%)_Ui~ z&$P$?2m77>_pkr|&;9@ZXWak)ziK_j`N8SIiNWE)zQNRB`(U$R9l1hd=^*O==>Nt4 zo&Smdw*PbgS=mwD|4^;@43kC4LPhQsP%pA|-wWB~s#-Q6eRN2_;hE7f~W5 zegP#?;^$E!C4LSiQsQS(A|?J1N~FYp93@iXKZX)1@iQoq5 zbtg*J6RA5;vY<%aj*=Bc>Nb=tDN?thWKEH}1tp7$)XgYaRiti0$+9AKBTCj4sT)wT zut;5xl9fg3I+QFeQrDt1QA_U9D(%8L0HvK-`=hiIYd@5BWbKR64y=7p+McyHN)uSq zP}+{Q7fRc*_C#qLE&m#nwq{+8(pIdiP}-7pB}!Ycu0UyX*5xQ|#<~opO<9+svkkP+Etz2&M6?g($7fT7c3x*10IH z#hQ=OSk^q0)@02^X${snD6P&q8>Q7)XQ8wzYYs}Qu+BtjW!4!et;Cv*(u%CpQCfj@ z8cNHvW}&nkYbHv|vQ9;58P+K%EzO#N(o(GHD2-vAjM50ui?tt$b6ESLcqVHf6whGojpA(9G!#!~?S`q?~C(K-WTWJ&L}$nc0$qlwgT=zs*o|{%wk) z^KTOroqrpn==|FVMd#m!C_4W(K+*ZPK8nu2^-y&Ft&5`bZygk!f8$Z4e{#ock^aef z_9Fe0J8O&dPp+9P(m%Naw@ClwuH2&YPu>IPpS%aoKY0(FfASvCKYwi$>7PFiMfxWz zZxrdDKNdy$=dXz({qxsA(fPMJiq5~)P;~ySilXyx6%?I+E2HTATM0$y--;+Y|5iZJ z`L{fZ&cEeQbp9=iqVsPV6rF!dqv-rw3PtDN7!;jSbQFQ)!C_4W_DAGUgClu+Q_aln* z&-)jO^w0YziuBL>2a5F1`#XyC&+DT||GXZG^v@ebk^XsqLy`V@e?^i0d4EBX{&{~! zk^XsqLXrM?e?*b~d4G^6S?TY&+zVcG{>g8J^G|*&oPY9L;rx@|3g@5vRyhCUx5D|i zF$&JVjZkp@ZHNN>^L{{q{(0Y{K>xh&P@sR_?@^$C-nS^wKks)a&_D0DD9}Ie8x-iD z_caRi&-)4m`saO#0{!#8K!N^wpQAwkyw6aef8M7k&_C}J6zHG#F$(n0`v?X4=Y5C* z{gaz!3iQu=9|ij7y@vw*^WH^){(0}9K>xhopg{k;w^5*f-diZpKkrQx=%4p%6zHG# z1`71g`xOfG&wCvO`se);1^VZ`h64Tbet`o0^L~y3{quf?0{!z|MS=c#ub@Exyq8g+ zf8I+d&_C}*6zHG#0t)ocdmaV)=RJo4{qvqhf&O_TD9}Hzivs=goy?$!vg)2^$rU3Pu4&v&_7uhq2T-*kAm}WZ4{h;<4|z^t%ZW~Z!8M*&s%~5{qvqi zf&O_L}1ZuZ9Bs^QtJ& zKd*uU{qxEw&_Az)0{!!fD9}HzfCByV@+i=%4o}3iQu=1O@u%J&XeV^BzKh{&^3gK>xf4P@sR_{V32s?>-dhpLZ_` z^v}Bo1^VaRjRO7i?m~h7d3T~f|GYa;pnu-&D9}IeHWZwHxBln&|3B;h{crI+h5zpH zf0d5lDpctRu0)lN$g?J@bVQy6S*0Vv8>rHe;8&>9k>GVy=}7QPROv|Y8me?8_ywwT zB=|Y1bR_s0s&piH6;(PCyn-qn30_8(js!2EN=JehQKcin3#ihO;CWQ(Nbnr0bR>8d zRXP%kph`!AE~<1Scm`EE5)7kCM}j4&(vje4ROv|Y6smM2coJ1Q5hd~c2}-Cg$10+_EUSR( zGORqROS5vQF2%~CI)*ib>LBZJR8y?SP#s`pP))MZs3usCq8evCf@+NQFsf13L#RRv zm!WD{m!cYBU4m+ubup>|>mpQr)`h5gti`B?SQnsjA?tip7PHPn}?Y}Re4oW;5ol{u_i zP&t!zGb(4WZbD@?>qb;gXWf9xX{_r}nZ>#em6@z-Q8|@$4JxOwu0~}B>nc>Hv#vzt zWY!g^oW!~ul@nQ)p>hK2QdEv-U4qJStcy`OmUR&-$FMF$ugl^W1WS{zN|T@ z?87<}mAzSKpfZg$8oipMV9i2hch*c)c4M82%C4+aP?^e_fyxxtbW|p5 zLAGrYOSWwyOSWwnmTa5zPqxkZC)?)ylWlYU$+poy$hOfxS^cNt{5u&H=if=FIR8#W z#rbyvD$c*-QE~nqhl=y>SX7*U$Drc;I~o<|-%+SI|Bgh(`F8{=&cDM^asC~Kiu3PK zRGfc@pyK>H7!~K=L8v(Y4n)QIcK|BRzx`2h{_Tf~^KV~NoPYbE;{4ki73beHRGfc% zq2m186BXy*9;i6~c1Okew;L+Xzg=ig*hoPU#0asEw2#rd}jD$c*1 zQE~q5go^WTM^v1DJD}qH+a49?-vm^gf7_wr{M!~4=ifG{IRCar#rd}tD)cYd5*7Lv zY=H{>3pPiE{so(%LjQtIQK5gqCaBQAU}IG1U$7C%^e@;DW%?IvfHM7)^`*-6Pp(NU z(?3~wJO5Th+4;8u%Fe&#QFi_i#;W%}p;8D;wC{|ROK=l>C9`se=vW%}p;fHM8_zekz=`QM>T|NP&h zO#l3EQKo7V}*%Jk3w5M}!3e}FRm^WR6A{`v2rO#l3MQKo;gC`y_B$+M%% z^v{1AW%}p8g);r~-$a@I`M*Y){`qg9O#l2}p-lh$*HNZ_{x4CcfBtJI(?97V}!%Jk2F8D;wCzl1XV^It@n{`oJUO#l4nQKoetbtgffBq9F(LZ0Fz(@c5HcIr*Z=pp0 ze7*kvKi~iVXZ`>G-=C-W-#z|s(2;Nt4LTAYMT3rn|Aqz~3I7!hIuia18gwN5XEf+Y z_)loik?tbvhD$2X#6U{tfDMB>Xn&bR_&1>U1RhChBw~ z{A<+dNcauZ=?Ge=&*G6u6ZM&_2I{A>>ZqT>s-ZrERYiR|tAhH;tTO5+u}Y|)$SR_K zf>!ufs2|UI9rfc_zeN35)@!IA!}sizfV2z-@KdX!SeynFu-OE^(5+hvYtSF4^{{D-C1qacVo#rzAH=K@u@6%$EUF59iPmScYG2{-tmbndB=BQ z$veI?OWyIFSn`hV$SR<|11pdE_N*N06IfZ)w_^>VzAfu<)VEwIEx$HcPg0980!xEtYKMSe9(%nk?DMHCVEhtFvS)S7XUmuF8_F zTt!RPxv#Ixx()S}Shu3SBI_2^S76)SZ9lqwf4W4|V6?BGjCJ3sH0aEkMorcP?tqzxk*+|K_3Q{F{rK^Y0wg zoPTGd=KMPgHRsKs5$=*Le2SiAZpIP15k7R z?T?!CZ$H$WfBT|F|L_QE^iS?YtkFL_gc|+BgQ(FzJb)Vg!~LkyKir2J{lmSe(LZ@Y zbdCPuZq%HA`=I9h+Z#3K-!#;me|w?k{M!>X=ieTvIsbM?&H1+*YROM$P%R5o*rA z4N-IcZGam63$KqF{R^*$8vP5eiyHk4uY(%>3y(*Q{)N{@jsAtlp+^70YoSK}!eddR zf8jMzbN;P?n)7dU)SQ2-q2~Ns6*cGIDyTXCRz}VFw-Rd3zZFq){;hzT^KW_7=pXJv zjsD5Ku{HXKJ5Zy4xE(e6hucu2f4CJj`iEOkqkp&=HToydEU(c&+=!ab^ZmYI{$oBoqryx&c6_<^e^}cRr(kFh${UH{)H<23;u~J{R{qq zD*X%ojw<~N`l!;spoc2`3r10;f5G2SrGLR+QKf&uUr?og!Jkp3f5D$nrGK)dYnA@V zlCD+y7yN)K{R_TFmHq|ap-TUP-=j+Zf^Si!f5GoirGLS1QKf&uH>lFT;A>RrU+@*G z^e^}lRr(ivfhzqAK1Y@Q1)rfx|AJ3ZrGLREsM5dSV^ry1@DZx?FZd8u`WJkFD*X%I zN0t5s@1aWnf_G7+f5AJb(!bz0sM5dSZB*%B@D{4{FL)DG`WO5fRr-e;P^EuzZ+Mmd z;W||5AFf4}{^1%_=^w8C&-efT`TqZZ*8m%o@U!k=*>r1pYV|{_vrmWA=+JyBPS{t)IMQbD0CunWR`WUSZSRbLa zKI=oY)?m9Vlv3`TrTCBIx8q0bMtuqR+F#CicO z!+IXA2Poa4}>q#`vV?BZ9 zB31{@g{(H33s@~Q&t)~yoX={YIgeFGb1tif<~gh?nrE{rXr9F?qdA9FLi0>k5zRAL z1vF=~@@SsU%At80D~skV))1OAS&yT6D(f*cPhn-yq<@h#n)EO7D4O&y@(7yrFY+*& z^e^%dn)EO7Ae!_q@&KCjFLFPc^ba4QN&jTMnI`?i2WZkiypJaR!+U7bKfH@3{lhzG z(m(tLP5Oto(WHNP3r*+WeP}xW?nRUSMeae9{zdLalm12SLX-Z<6Zx9-FLDQ(^e=Kd zn)EMn8=CYlax0qjFLDc-^e=KVn$EwQ&~*OYh^F)J1~i?2*Q4qDyADm~-?eBu|E@vP z`FAy%&cCbBbpBn5rt|L#G@XB!qv`y+3{B_XrD!_;Ert|MSG@XBo&~*MSMAP}V08QuLxoA57=A-HSn}??JZ!Vh7zjM%Z{+*4c z^Y1J)oqu!CbpD-*rt|L%G@XC5(RBWuj;8bPG&G%mv(R+@%|w&_;Y~E@pR8=uq0jhzG@XAZq3QfP5l!dc31~Y1jz`n^cO06|zhlvK{vCs+^Y3UhoqtE6>HIrV)^6hO z?-6J^{|-mf`F9wa&c8#^bp9QJrt|M$G@XA3q3QfP5Dn+w0cbe?_D93{w;vkLzkShg z{_TT?^KWl7oPX2MaQ^LuhVySvG@O5XpyB-69S!H-ZfH3Fc16SaHx&)%-xM^Qf0NO0 z{!K!|`8N>_=ie@9IRAD=!}+%p8qU8R(Qy9lfQIvLdo-MX6VPz}ZHI>QZ(B5+f7_tp z{M#B0`iEE1pntN4R)hZGWi;p?UP8n9_aYk3zZcMO{ymR|^Y1w{oPW=v;rtsxgZ@Rf zLWBNAwnT&eMYceL{zW!N!}+%v8qU8>(Qy84f`;>NV>Fz98=>L++Yk-s-v($n|JFyt z`L`Y#&cAihaQ>}>hVySc8qUA9(Qy8aL&N#E78=gKv1mB|)rVXgL2?M8o;F0vgW0<J+2A{auMIvw_~c+kR{y(i@Rq@=1{V*`9h^0I{NSO3dk;k ziqs<6$b*sFO~_pnFgG$Qa(v{_$lmg-hUNbKSK$4B{g?mL|I=S?34ma_E`XWv?vk<# zU?#jfrR)Nj3GWUmy8vdwyIsmIfSK@ald=n7CcInmgz}Q`Zi(FDU!XtRSLz(CeWYe; z?Jaej)-=O~w<- zOTt?wa*Ovz{n^q|Uu!KT^`X`nsb6aiO1+|$l6ppKK&q*gl*(%*q#o9aOWkQJ^pVu{ zS|3VXs`Y`?Laq0u&eVEOYP#0DQb%dMBXxk*Z=`nDdRuBIt+%AM)XGS$ua%ZsL+eqg z<+L7=N@zVSxg|8J^`O*uS`SElu64iEyIS{2{ZiH~Nt_|^qK(-SOKhAjA*-)? ziPI!x`@O_0iAQYAl(^f*sS>jKtd}@N;z}DcBo^D4E-}x><`VLM{rp2iQu_Ia9+%S3 zKlGTCe*U3Lq+}syuBDpvUj46n<-h9X|0-FFRzL8hd=USxJJ8X2R5ZE{Iy#SvM#o1! z3(5Z{$o3|^DOjQtqog<4EU^0tL}z13`9)Zwv$3Q%6&;;N#q2+;^Qc&KJUX05*`IM9 zCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Y za2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk z?dfnHCC}~Ya2_Sk?dfnHCC}~Ya2_Sk?dfnHWu8Ze^C1|80$%rH8fN0}w)a2{ozMu+n#^AtLqN0}$l;XKMbfezTn)q(&%s=WgbO` z^C)?aQit;>d5%(t^C)?aQit;>^B_8$N0|rE;XKORj}GTi=00>dk23e7!+Dgs2OZ9% z%-!g49wpCF>Tn)q?nH<4C?mhWoJX14(OFuL?96TGEXBGNoiQx=y&PoSj82Mm6FLK| z8_`L!Za^o&x*nZ4>pFB|tZUJUvaUe~tgF#6tgFz8u&zWW%(?=dfOR=KKI<}cJl3W1 zcwE*cXkW;>812QZi_pG+bs^g4YeiQ^`#jc4XfI-|i1tF(3TQ82EsyrOtmV+2&srAk zd8}p7p37PqZS^l6T?%dWFK!m2eU|>Ixd81stn<-Ux#H$Lv{kOSS%kLA6*mjfKAnHx z0<_h?xH%VX^)GJbqiwyE$Cu1Q+kz=I7i|?YZq7k_27h)o+Uj52oQ1af7dLazrhn#4 zw4HxvpzZvdjkfdebhMp+r=jiqn}xRXZzkH#zf;k6{+)uh^KS;)&cEqsJO55b+xd4A z+Rncd(WZaVF=*4j=pfqkFPcJ|{zV7Srhm~S+Vn4)K%4$W<7m^rXbf%o7mcD#|Dr(K z`F8@^&cEZ)cK#iQw)5{;w4Hy)pzZuS8g1v_QD{5=jzrt}cLdtbzr)dX{vC$4^Y2i! zoqva*?fg3!ZRg)XXgmK7MBDjy0NT#K{n2**?T0q~Gy9@V|I9vU(?7E}+Vsy%L!17Y zz0jtAW>2)~pV0i{KP5)$-?>7C5hS8>f(Ex4w7xmGme^C!@`WFqMP5)?MClekIQWcr*F4{ql9lA+$p@0RC$CFhl3b8HBYAT2$mIUX-I6;d zw@9uhPXky!Igkt|{*m}o;>%#NJ&f5KmW=YQp2ax|m=3$_oPEMs}XoFQeOjgc_3rR=jY66SO%`)rJaIZaAW z4VYO{dTPMTl+sfJ=2R&?HDFGW(gSldLrM?K&Gg`DeL6?NTq|Xt&XF+JNZF@zB+S)P zdI&Ny3bivd$&US`niUbWfPEQh(5& ztts`D)*4bDXss^whSq9QFKZd8VXcUi9BIqHFD#YQ3Z(3FP7=nKvd=k57*EPR=OiI# zk__KTc`m5oI~n;=O5aI&?u6kx8Tm>|-^s|AQu-_wShd?>Oh*arVFCtbfOxe+Nc%DwUG8ct><9m6El1M|3Kc3SEg2ol2!bS71b^ zQmN487}2RzN>=I}(Wz7_bPqqaKcL=5XjCe1Dw){RV>oiVH% znT&jZVcp1NL+!mw^+GV(Zvbt99J`54yuVlpxh!#ZC~ zM&@Ez=Zne6IT+UYVlpxr!#ZC~MkZlc=ZndRyege9CL{8ybiSC3jKQ$Z7n6}e4C{O` z8A)MS=Zne60ETtGn3Q{OhIPJ}lzVT6b-tLCdvAtyzL*Sugkha8Cgt9nVVy4~!?Kk+ zUrdG{!?4a5li>`8b-tJkr!l;dyrq6J{3wQXzL*R@g5eGLvxhOfKIJE?N-!~q^I$uo6wYtM&`Ll5t*7;&muGJmZ`C?M8 z)g9LPVp6Wv9oG3`Qm$hh*7;&mu45e5`C?M8V;t7`VlpUTSm%q$Adg|4FD8Q=hIPJ} z3>IQo=Znc;0fu$Hm<-Ovu+A5gfqa5GUrYw_3F>??8OSH7^TlK!dx_2$lfh0H*7;&G z*b&1zUrYwF|LJ@&8ElW?q;63#0mC|9Oa=jlZ!x3XHr&A9oG3`QdUo0qVvV1e+ri9d@7h9x>*O!}K*iOv_3vbx+7oi8S3b-5)vUrc&`m%%NJ z5#7&Ivh4PV?&m34c6&tk^Hk_IjOc!z3f+nk-Op2@TQH*gc}kYu9?|_gCChG)=zgA( zWw%FkKTpZB+atQ4r)1gf5#7&Ivh4PV?&m34c6&tk^OP*RJ)--0N|xOo(fvFn%WjY8 zex3?lh7sM*Q=v;SqWgI&bTdYDKTm~j!ietYsnCrW(fvFXx&b4)pQl3CV?_7!ROmX4 z=zg9GU5gRj&r_jmFrxc;Ds(kQbU#mpuEL1!=P7wy`-tx6snEq3(fvFnk82;X`?;68 z(2UsK+)FJsBX%$MQWuyJyOVpV^Ua9e$Gy~fX2kB|UTTpUv3t0eT4+Y>4(_EEm=U{w zd#Q8Hh~2%t)O<5y_iisW&y3ie+e^(gBX-~RQs<;av zPBkNTfA&(Rm=U`>d#M>_#O}>rYPy_=)Y#vQ*nQbc?Po^puI#1uH6wOU_EIOC5xXOM zsgulz-H*N0iDty^#$M_KGh+8*FLk`>+MU=-9cQ|BANEqmny%f2z0@(LYxiI;b+qZ) z9oS19g|6l<{> zVSSD6*{rY7J&X0F>CTbzQu~yYdcb3MXraM#P z5Ys(X<6zT0MdKjTouP4{=}y-;z;sX6m}a^sY3yaXCu;0zx+iGtVY~6ZpY3ydY z$7<|qy2oftHQl2%rkL(g8k0@;NR3IRdxXYB(>+{c7t=jVV`tMnRAVR8Jw#(i(>+*Y z2h%-BV|&v*P-BAW9-y(E>F%$wt?BNkv5o2OtFg7|?xV4l>F%wurRh%7*ur%8(%9T| z_teq)7aQ_ch%U)bf;=;Xu4B0HZa}E8ta?xB#re<*E;2;)-_$r zl$Tn^bgfceYP{)Mq`cIC=~|<_RMK=UQC=!xx>hJJ6*pZAl$ToDbgfTbYMkj>p1jmr zrfYTbQe#cm;^d{)G+k?xms-PgElpl(bG zJTG4cAQp|K|Qq**55=@sS8Plan5!0nfVbi5aE0``#THbVN(sHItla@7I znzW4R(xjzLmnJP`x-@Bw>C&V@)1^r%bgfB#Dk>ioQ3_0#DEapK|3m+?{(nf0^M4=z zEdEaXwfOV#C*zg)WAXdqx5TfCFOJWR&x#)(KQz8~d~$rd_$KkS<15F<#7*p&<26Jae|0X^xkt|LtpbH9MLu z%?4(ySDv`$`@`bBj7w~_-24K6$CXuxxD@VpeO!%MS zKZU;ue-wT*{A#!xZiNfsN5Xf7ZwOx&UKE}ao)JDed|-Hw@Xq0_!W)Fw3@;x}hW(%y zd>?!fycfJ4ycj$k)PkYlf#9~_n&6_~zp(}Y`gUaS?QE-WhX$z`=-aVD>J;?t;2?E7 z`gU}Xx&wVXJV@P%z8xQ=o=4vf5K=FoZ$}8J7tyyvgw&7d+c84wC-m(g;U|L-`gW9% z^3b=#gp`lI9Ves$^zA?)H35A)Qb=u&z8xy0c0k{b6;eB*ZwCvhozS^zE1-wGe$fXh`MIx1)ws9(_A(NEOhxLc{+$RYJH`gZ7$qmebyw_}IYSoH1SA+;9zcJz=MhrS&?q}E2?jvrFv(YFJL z)H>+f5k%^6^z9HLbp-l$43Rn#eLILq9fiIfMWh}=-wq>E52J6#5vfPew*!gPqv+d_ zL@JHG9ZIA!=-aVG>M``~U?TMa`gSytl5MlYiIi-c9Z#fW+w6cM^$GfRM3MRweLJN1 z_6V%d}*8wIm-Sq7MBUe+H zzK$=6Q%qmSm&B>2Kd65+)AUmsvrKtWhKx%hm}O{Y}NpJXR%V~&0!6q zcP48LdTL$5TM9k3F5xYW-s$|)WzbXW67rbFo?4gic0*6COUUCKdum-m9`V>y>k{6c z=&5xHc@$(%txI^*&{OLY-rne`bqRTlWKXS2$fG5DYF$Fs8t$oe30Z%*r`9E8P2!$f zmymUedum<6yB|HZF5x|Zo?4gi9z;*AOLz~Vr`9FBhtX5(60$yWPpwPHI@vw7E+K1Y z_td(Ctf$>m>k_iYc2BKK$hzA-wJsrRare}^gsjiqQ|l74W_M4mOUOFjJ+&?&YkT+9 zx`eFp-rJk+-;d}`WBr7lT9@!c=&5xH-$PHWOZYx|YF)w)&{OLYei%KqF5ySeQ|l7G zK~Jqq_* z?a@=~68;Y8sdWkeRP@xkgg+BKwJzb$LQkzr_@|+#)+PMY(NpUZ{%rKrx`clQdTL$5 zKNCH*F5%BXPpwP%XQ8LoCH%Y4Q|l7GeEMo#!k15fBYoF=`Sdqr$)~T@C4Bkx)w+Z) zpT1g`kf+-8)VhQ(pT1g`@a5B2>k_g)S5K`=$eLX}wJss+c=gn}gskn=Q|l74-d9hp zOUN2vJ+&?&>w@*vx`eD1*0a|630Xg^XR(u#eZy+!Cj$AjEO%1!X<6^2UY)OP*8=J!_tn{Qg?>q!Q>^^`w&MS@xs`(6jDI?Sh_#Pii81Rz9go=vn%tCZlKV zlbV8_#ZPJ~dI^^N{#yRzXY%_?{{s2_rGJ6^{?fl-5qk75I1fGg7o3kC{R=KYkNyRV z(W8ICh3L`0;3D+sUvM!->0fXOM(JO0DMsmEP{b(xll6Q@>7T6eJ4*j#-QQ9ACu;$Z z(mz=rc$EIhn!%&=Pu3A0rGG&aqx3ImVU+&KoztWAPwu83rGIjV^(g(5yRJv+pWKN( zO8f)A+7^gHie?cYBZ0KUv3Ml>W)u2BY*();k!bf8h-$e zVwC=cH^M0W3vY~3`WM~=qx3JlDMsmEcr%RBKUtw;l>W)89i#M5R`M97f3mvADE$i` zk5T#;J^`cjPgVvQrGK(o$SD1j6+}kqpR6h}O8>%-W0d}dhcHV2!dZ;czi#p zDE$i;FiQWz@>$ZquzZ&EFD#!W{R_)yN&jTEsZshDmiM0i$*NSN^iNi*8l``-detcX zlNGH->7T4}HA??v<*QNp7ycba>0kI;jMBfz|Ha;!$4OC~eZ0G;r+(ctJF~Ow;C+jT z7Xl*UEhvbJpn!Oxh>D5_DByk0;B9nQW7H&GF>2y{8)Lk7?w!FS(RjtEF(w){MvW1f zS@eCXp5A3^n%)Fq-k8sa*FW-m=V7~kQ`Pl-p02L$X~81qU$`F@G5^A?Sj7AbC$Wh6 z7w(Tm%)jtzSj7AbuZ~5`zwjDZ#QY1diABu6@LE{J{0r}nMa;kO9$3Wu3y;Af=3jU$ z7BT1{%Vm~pKuK$OLL1I0T{NH;60G6nX+dsMu zmZ*%|KRO&sRL1Qe-4;t!#_b;+fh8*A_K$9dB`V|gkB-C=m2vw=x5pBdar;Miz!H^l z`$u=g5|wfLM|YwAr?8m2s2q>*!J$H|f5CE|qbU?wjaR88_+v z0bMHNCf&Etr7~{P{Uf?m#!b3!qf2Gnr27uKRK`uZ@1jd(+@$*_bg7J+bl*dl%D74Q z&*)MaH|f5QE|qbU?qATQGH%lSE4oz1O}ZbTOJ&@o`yski#!b3^Lzl|9N%tdksf?R+ zKSr0zxJmaDbg7J+bpMVnm2s2qr|41{H|hQZT`J=y-OtdaGH%lS99=5oCfzU4r7~{P z{U^Fq#!b3kqDy7mr28*)sf?R+ze1PFxJh>rx>UwZx?iJ9W!$8@7+oskCfzE!RK`uZ zHFT+rn{>O-r7~{PU4kx^ag**h=u#Os>3)kYm2s0116?ZPCL<=gRK`t4EOe=in~a3e zr7~_ZVxvoC++-w-E|qbU5rHn1ag!0COJ&?-#6g$JxXFl%E|qbUkqEj}#!W_|=u#Os z8EHb7%DBl$3|%VYCL?ilsf?S9G^0yp++-wyE|qbUkrs5RjGK(~Lzl|9$w(`@RK`t4 zlIT(yHyP=VE|qbUk=4+pGHx=mI=WQGO-9y0m&&-w$eQR<88;bO3tcMXCL?R3OJ&?- zWF2&=jGJ_Si<%nqR`*`i)R?!r_o1f7yw$xQH8tj~?gOZ)F>iGrL`{u(tNRdYYRp^R zhfz~w-s(Prni}&~_fgc;n76u*p{B;X)qNZ_HRi4EuTWEC-s(Pqni}&~_t&VYF>iIB zL`{u(tNR<&)R?!rPobv9yw!agH8tj~?lY*VF>iIBMNN%)tNR>kYRp^R4%F0`x4IeB z)R?!rS=7{+x4Jph)R?!rdDPUHx47$}rpCO*T^BVq<}L0zsHrh;ao0vojd_c^7HVqD zTii8KQ)AxZu7R2w^A>k?)YO=_xT~S2#=OPtkD40u7B`8S8uJ#n6*V>HEp9*5)R?!p zEvTt6Z*dc-sWESHn^99^-r~klQ)AxZ#!ypZ-r_c)rpCO*jiRQ;yv2>6rpCO*bx~7e z-r_o_sWESHftsqaT3msesZ7Wt?sBOurhT0aas;F(wYB6e?vHBXdL97;`wkfNxP#ehV zU#M-u>PyrHu=*!z8?*WXwT)PPj@pK-K0|E-R{ub4eO8~MwjQg$qqZ)qPf%Nj)yJr< z&FXKct;Om?)YfG60cvZo`U`5Svw9!3)mZ%*wf?OBgj$l-yQsCYdIzQ&UDtbUJLgw-pkxvXAB&0$4z8mwMIO|W_qwJ@va zQL|YsL@mUsf||vu6E%}n2{nUN5!Lfq6;M5oRUXxIS!Gc@hgAmEvsrbZdKRnaP(72? zv#6fI>SiSQ3lRs2hYuRvAtFA=^RRmHzV_z+YT{}SPYQC0j)gbzYh z@h=fR5LLy$M0g;oihqglCa5a@CBg$xRs2hYH%3+QFG24}t}6Z|=pD&b#lM72{C%y{7cxoqpJ9qut%e+_?NIpp{n?ouy;dM@h@TTimKvY!rlc{#lHl- ztFEf}m!NmmRTcjd^sc(9;$MQ^RaaH~OVGROs)~OJdRJXl@h?H|s;esgCFossRmHzV zD2J-zUm`@kq4<{wQEw>zB|=xDs`!@(wWF%|mk70?s`!@(O+{7lFA+KbRmHzVXbP%| ze~HlAs4D&?LTjO__?HN+iK^mX!g?Q7#lM90XH*sc64raDD*h#`KcTAlm$2SNRq-!D z@9?iG{w3%at*eTE3Hn9rs^VXQe$l$B_?NIQKvnTCVV#ev;$Ol#4^_p#gta%Sihl`f zFH{x(64p3W75@@e5>>^&gw=|w;$On*hpOUVf_}HLs`!_n-)*ca{w3&l8>@5NePOPF*GZRr!mE<$&Zf{kBkDj#@Rmna1^kr3I&urQhRYg5|L=#m-J^9$? zVnsdqROMntJ^5_rVnsdq%;jQ5J^38wVnsdqZ02G`y(W|HQ!47wbD~(RsMkcl>$g}@ zuZeyoa9c7CZ_2e$I#fo}z=han(?^e*JZAckk<*84H)hnN@$}h{p?!n~A9Lgxqvp+J!A7-E1C08PPeyBjMn?o2)j|z0>N`FeT@q+?+hC(w zr~yWO$0wuT1{xh6Y*Y(1z^L!|w0YDFG`dZ&Q7zN}qrT%CsZCSI&|3g_+B@`oTOYHp zk5B`=YRr+xC#y62u&T{J-KrL9fK}h|$?DO4Sk-2rZdD64z^d=~Wc8>%tZH*mx2lC2 zVAXegvU+46R<&8ETh&4huabv1X`u#K^&OwA zPVd9&&|s@tr~y`e$4_mUIy`E)imM0Hqun&flXoAx*YwE~$L}$H=#Xxw;|@^uR8Z(U zIh}aw{9|Ux3hby^$IO~M=ftCD$+D{t1F{wJdsv{~A=?M~)kBT)>u-hpP7C(ilRJF< zyR?**p@#X@40!!}Xt3X&1mgFrg&OA9*9!ITA;ErovWVZW7HXJZUn}JI;9$Q!sl@MB z3pLEIuNCrpP_W;geB$@3g&OA9*9!SPFxYQTQt|uMLJjllYlZwy4fflUS^R#rP{aKC zT8TOL8BtpQaO~y-sOkFbug}zhG(!B;h?$ncJ@DhAq zho_GEq3d1T&Tz@*sQo7HK7HZ=Q^rppLRZ4ukKKJ-kIkUace2@iX*=rVIY-Sn@ywIw z&7@CGoN@ZRX{jOUExP+|hU0ucO!d(-^6RGtr#J8Rd>DJ4JZj%b(+`xRJcLSGts{d% z^&L6=fZ20ro;Y*HyqQN&-+j*P`7>wF_uq5r?#RhAPC9k&j9CZHm^*jY9B-8%z=G#^ zvtY+m)CM`$LJf56Ylr%HP_X0rleJeLYoP`@_O(M4*tFZRj{18P!57->C2K zWOU+j7{3sM)zUE5sNO$#*Cjj!Mn;DN;hMtOq?{i z`>Hx9R9^xt*HzY-6Hl8tyZ1F#U#(EdLfc&U&N0>h@=8{}7T2z^ftUz0Vcv*VI<&IkN9~wB7HAsa}Jve|0)H$!+ktsr_sH zwADf@w+{pD@`}amz8r58JnCAgVUB&RP#>Svm*ZiN`9cJvP`VU4;i3)j})ZsPFJ(l(x49B~!Wz4>GESR=!c+;bZuQ3@U8a8_J~l*T4=5Qzg2}Px8}#))xwOptipQT z8Q6CE(BY%TAGoZW23qJl4Mg`^_o$OogD)J@I~gb&z49FugPM(?P`!;6D_Z($B{lTI ziSqoF1r6QS_%HQa{mqs>22XYknV!&xX{uecUhZ`sXrcOE{*O}F(!uWAw67&Hy>B0; zsjvt#t%VwD+Sd}99^Z#)sx5*{YoUgk_O(Q&_vyoQ{Uq#ldT61Bn)bDn+WNx1yG_%* zIyDh{-7V5ahNeeQsNVE)k>lUptm`${vK_L#S09$OanUVnp$1y^wL_N2^YvJQA*0MZ& zYS4wdclYhS^z@gq+UvQ`oow>cfycTMl zV_!4mc-KB0Q<)d!SPM1Iv9B3&yh|UB3BW;)wNT?6`vbM$p~gA(H4|&P!e}*qY8XF_-(>C^+tK_s`g(Me$XxeXx5+sew~K#> z9l{scFWGB{jSMsdc*%wk<*=y{o6okF#BqWOslnZZ#kvjG}RDVFZVi>7HX(zUrS_Kt+NN1)<#DE z{#vM^rhP4uX|?7aV4CuHP)}>2hMM-ZM5fjHdw^+e*6Ka2g&Jzw*AkglYw-c5DVqoN zv=(ZpX! z3VFR&r?iPnJslLPH@#fRyYGc7&4O%)EYm9~0xfIPR=2E$8fe+q4q2vGQv_PpCarE+ z3pLQPuN|^Xuc!#LtW89Xjz-Ex@9fYK+C>%$TGdMBG9rnU3JS^ zsDYM!?Zp0WJlJiSRy6C&eQmmu{3p}ug-rpbwaKTO)Z9GOb?S6kuALfVycd)KJsDmdLbve^Y>IZL;g8wNOJ%`&uH? z>LpGArnQNyo7O@NHSKFDwe`j7O-|A@Enp~m^jf9RMutoWh3ZW&7w-CAz|btncF6Jp z-PPwZENkPUTh>AiwCrn#EKljfvNkHZWi8Y|%f5D~I_y|myZ%e-$b$C$dJ6Y|%)z|0F8_j`ih8*{7=3Rzks+)owYoW$D_B9i0 zx}L882N=y$;&+vLEZYR_b4O z-9K{ru%TloPFdDfE!0rU zzLvC$=z7cB23yub4YllRi7Y#T=koAi%UWoKET;xvLVMkoF2kyR>s8hatuql6syDG* zrEp&rk7hu&k{WtR@8=Wh2U?rvlsS4W3TmNx!~an}?#>*`O#m|8`}u@=)7tdYO>3cs zn)bCsrhA@Gpa+HOO=}ZSH?4&lYTDNlneKT)VHu{iDX5#)LJc+TYl%$vJfpA-)7o^` zO>3csn)bCsrfJ*1x0>xgJ+`SMN3V&fg&Jzw*Akhgo&SNRhXtF~LJc+TYl%$LGlqet zHAL#ChZbt6X=xWq~OV{Y=y)MIsjT$#*kM1)eC{*wEKbo-J7h!!Z-{}ryGi0|KV3*$R5@c5o ztpvNNtuEbB@|a_3|NhT>GQ54DVSR#Y6w^cXC&Wra zmA@G>JTllYtzreRm41h;SEzA@ea(>J?Sc){x>Ar~Ez~%}zGleqh+xCCrW9mY3pLKL zuNgADZLnclPYN=ug&Jqr*9;jR9&DJ_l7b9tp~e~ZHA9BC2{ue=F37MJYMfzTGh}#J zuwlv@L58(Z;|%+nA;Uw14O8I}WLOI|&akhU)RvbH={8KYn#^?Ck80|MgF-80xbNTF z>}5cC?W^daM)~!(LVgDa`_;0H?pF&n%&)H%^1D^AUoFY#ezj1;{Q6pn zIfv2v|L-<%ck{mSpTs_h4R1ho|Ehnxss~o}z^Wct)dQ<~U{w#S z{2oYced%ekvhen!uOZ*=*6W5SmD0mUjb6I29u%rCEtYFluS-<1P}9Dah!N*>o2EPc z^^Bma70q-nMrfgW(<_k?zIMp+*?m~13zi_uTBw1ReeICtv-+@13v)r1wNL{s``RJP zXZB&4mga&iYoP{O_O(Nn&*;OlhDJRVYM};N_O(NnPw&IB21ebo7HXhnUpq196eAkG z%fPeE6T)}JJ{E^IU4~e6U}T>AoEuyDRm`d*uIhnRJ+P_=R`tMg_CRXzWolE1yq1!i zLe`Y~-+JwyqFQjm}-b2n+ybow#GUL7QRfh_ml+g)#2 zJH>q^=hD7zP=`v(ng!2t&+F;wBDLN!U5PLCrCZiQ4YcfQhkCi^{q)PQtf5c0tc4nA z+1E~NN9|p2s+W7^1dSwmCecDGWVx?&QQr!YjJ9_#-H={ySUdA|!&<0ehJCHXZ|bv$ zwewy#tc4n8xV{zYVYQ1esDjYWdfl)VYM5bPD^w!&ew$wXDWRS7x?wHUFvGr9sEgIU z$7QEux#2h<9qXZb!z(Qv`Yn_kWwDV|BQNX8e=W2^{olte2emxzYl(i(_@nNMXhywd!eo$T zEwo~mQ-d$3x9}{5uX52VThPqZTm*&cT`X5!)>pRB49HeeLoe@nB`@8*sqZ$elL-yI z?kQ-Ydc(^#)0TUr$#l<4d6!{Y8&KV}7HX(zUrS_~ej=jh!P5GkrnIP?8ohd23pLcV zuO%{lSRbY-H3pg1LJc+TYl%$veqUjIPiu2PKRvWiLrwcyBGbL!S6FYFQe;q1YoUgk z_O+DS`tqLl6;eH~OzYR0n(3fWz3Jt`UElZ8{b%&nm-oD_a2b}hlZj4_UY4~`11+SL)Ub45mth-l`Z}X=wlYzi(G9V_r@#RSb5lo%Xt8E!40M_O(KNtiAEC z{*=&8A>FYSYM5hRE998o_{TK{En}`N>-Ju2l~l5AM|FG8v)w_Vdc(_A&GosAsX36% zkYjoqa-d_XqJkW2p~gA(HA9Yj-ch)WKBkEm|C{4uADQ1oUx}_CIo_rB=Q;b}I`Jp5 zW%zVEZ?}eKSP%YJF6jTGMy;QAUqTx~43>WwT{S=m=A)(ps2$nl)M9B)(Cb-f&Gp@up3 zwUXNEik@wGbW`!aHrBHy&pGkvSu^L(n?|XsuQQ6exMxe=p^mEzj~z8(%Jh9E>^Vi= z9nnwDpiq4eFIQ?CJ7f0z8S~EEXZEaPkDIR?_tgwJ?%9#I49CNQ9c!V+IrcR}j(axb zEyJ;P+S73L`tn++agKe>q=sJ6vmcLEg49{DbmfGWY4x)rD6~S3|IPB1ZbG(1rh9he z`AyTU-XPO@sF9}qEs^P-J$cJ8Ju=v|7HX(zUrS`VXRrS3Mya9v*C33pLcVuO%`)w-3|xiEt_M z^c>kx)0zp{5}7`w57SyEqRi6Ev=(ZpXHz-u!!^>4V|C?2zUJhh4VZ`~@W0#x zsZFk=8;AVbMta5a0IIio{fZUU4kM@(*3AW!3v7 zEm;?;*DH_Ri!CUuSxXTkfD8qzLU@H7t8YNmB-2jRbB*64Zf0g9C?=Lhqb;J zrUJV~es^+A+l>Mp51Ss?jaq2sc4KeHzGlcV?KKK?JT%y`7HXVhUo$kL)J7wDqSB1o zM4wS~5xm`$i4*o*#*ETJ-^p;FGs<`P)TUR`_9E_D`MYq^srJfp&uQ;DHG0(KG3xdj ze+d~{A*VsFEbrB{JU;cQ+E(QCsZJ@mY8^l+J+wkj$DMl8jM?f&%2EjW4^KwbW};;p zl`GW&M)lB2H|jq;8Kq4*LENX+=^&$8XyqIA9iEJ;A2?lhkJ5^CkWnqP@{RfqPe#?x znl9TYtwIMG)j})ZsPFLfh`%|7Hug7v)%;2Gd(E#mztEg(ezN(&<~y5jY`&)X(&qD; z=QkhUd_?oq=JCy=n@2VeZXVFQR&%0R#Jl2O#6OI`9e*WWjz1TFJbrKdw)hS4tKt{N z&x)TMKPEmcJ}EvfzDs;~eDnAQ@zvr@af^Om@YC4)u{UEc#R{>fVh_iD8M`@lZS3;c z1+mj&C&rG99Tb}o+atC^Y)EWiY@JxYnA7x4)0a&jHND&PYSY4|Ow$uh_cz_%^pmFc zri+`-X`0(~T+`uAQ=0Z}+O26s)0RyeHLcMUZ?dD+=x5QtM&FA5E?SB{6MZy#cl6fi zbW219T(#q%*Amy z98<72cEbp4iH)!Z;;=Z0Z_3#VfT=>cGgW)^FH-@hXUm89yJU@JV_=xb-@c8iP@W}As z@PP1I;Y3*2UG^9DhxXg{D|Xp_&VJm!*S^iZ!M@7A&_2sP**?aeW>2!m*}K@o?al2C z?A7ch+X{Uh`ZV-@=*`eep+e}X(8Hl$hHegB8@fDnLFly5iJ>Dy2Zbht_6Y3|8WI{9 zS|`*m@~3$4u3Cs2@E&o)de?uLp2&=V`J($&6$R5OM zO=J&bwFa_NS*?!j0ZKVTke$M6Yh)+08jS2DR$C#vKdUW~-H+84$WCOnIkFR!GA}`P zUse|*JD$}=$nL}HLS*-5wE)?@Sf!C2$LbVh_hfZ4vSV4zL3RwQ*~sp}>Lg@$XLTa7 zqgkbp9mVPbWOrkAKC-*AIuF@hSe=XP&aBQsb|+S6BfBH3vyk0^)tSg{&*}_hN3uEr z+3i>zkL(Cmvyk1E)p5uUXLT&H+pszY*NlA;=D7buhA*g+x@AWIg`vgsjKE9g+3;w*#^s|F%cgfn@%T3!8IOP4Amj0G7&0FJh9cwfZwN9T|F%ZPLQK8IOM(A>;9HLu5SuZGeo&zx9#v__rQ19{<)whWTf% zgADV}TpJnYpScz?%s+EYWSD>E8ptsJ%+--${+X*G!~8R8JeYqbjR*73r14<>nKT~E zKa<9T`DfC2F#k*%59XgqFVw@%U#T!~6p|VE%y|F#kXfn13J#%s-F=<{!ub^AF^J z`3G{q`~x{){(&4Y|BQbj!~8S8M27ii{1X}GpYbg+%s=BBWSD=(5@eWvMi(;7Kcj{W z^UtUv!~8QABg6bNzD9=mXDmX7`Dc8E4D-+U0vYC?@i{WgKjSlGn19AUkYWBApCZHj zGyaYY^UwGM8RnnyF*3|Q<0E94f5zXCVg4B(BE$SMK0t=~XZ#fz=AZEwWSD=(`^Yf= zj6Wm8{4?G|hWTgw2^r>}@h&pVKjR%_n19CG$T0tmKO)2YGu}dm`DgqA8RnnyCNj)F z;|*k(f5z*`F#n9#kYWBAuOh?zGk%W@^Urt%8RnnyGBV6R<9Em~|BT-v!~8Q|LWcQg zyhs(lVwmv)GR!~Yd1RP>#zJJ6e?|ov<{#*sWd4E9NsoVYPBQ<*x9DL0iEq%s{1Z#i z!Tb|l=wSYd8akMNqKXdYpID3z=AZE#I+%aPv*=*{8PA}D`Dc{T!Td8i(ZT#PO6Xwz z8AWt3|BM1Un14nd9n3!?hYseSkwpjd&&Z&I`Db*XgZbxdh7RVR@iaP^f5ubjVE#FS z(82sOeuEC?pYbF*n19Bv(ZT#Po^- ztQdLVq*41Vdue-V=sS7-cT3y);ZuXI9?;#ra%o#x)z`N950<&My)?8!Rs+|z_2Y{{ zsln|VbT7oy79vY7Z}+;n)w6)t+brMr(n8x9&RxLx)V6IB9bCqzejtC(qsILicP_&tu5BzKphI12oy_2XK~7Hf6Tg?A&g; zZZ;_Noy>N3@V_C1=D{;PxG&Qqf=z3oMw<3DL_JMEg%jM<+XkD~LX9--Yluv5*_Y|z z!KSrPBTf4nBGX&+WqO-n(^{yJrhN^O>CO8xO{rR=Mz4veg&Jwv*ASWBtS{4)CWB0C zp+=haHAD$;kTflCMoB)4dOQyqG3MYgla`6+UZL;g`QPHXt^xA8X>YG#pVw{4Yft^A zrIH~_Lk;q(H;~%&>Vf3d?e15f)uH3YjM`(_-MTc?Agg)pwJ3gUFJP=tz~)m)PQzbR;oUwvQqO&)%y_sT0Wn8Xr=q~AD+rI zRaDBc_m^o)_X7CJG(Gg4oOV|ceU)kcX2|iz-80MYcxei6 z1ztzQ!6@)LA`U`<*Aa0b3cQYpsVML|A`U=-*AZzqMS<55F&PD3M|38k!0U+4{wVM| zqO%_gypCx78Up}^~i*1ah3I-+$C3cQYJ-HigTBU+E6!0U+CV<_-C zqV*^WypCu+f&#B2S`VYZ>xkAvDDXO>^&kqoj_6E8f!7hOyHMbDMC+F*@H(RP3lw-A z(Yg}_UPrXbsGx2j%fW11ztzAZbgCD5v^NL;B`dnW)yfG z(YgtRz12#!bt4LUvHB?r<5>L!g*{pQ7=^K{Za`rStLstNgVl8??9S>(D2!%x0Scp7 zosYt9tjByhW>Tu-GVs#kuXR?}x{28ncMgDZ9Fb?_CSnY}YsjS8#KcCeY zXFCPD>*F64FuX+5V zUi0`zz2@^_s`OU6A+qw=?n{|8_#&__sCk9{-Zad;Duf-s4|C*t&+Y)(?e_J5$@o#hFJ^pQmJoC>Qggo=l+7x-_pEVG9=AX3*@*e-FhdlmK z4|)8f9`g7{J>>C^ddTA+^$_z9)I-caP!BQxXh&n7`3LGD=AT0&$oz9?1et#hjUe;S zp%G;MIW&SE{{|rM@o!_~J^pQkyvM&5U@`96J9z{>72^ z_!mRo<6jf<9{-}qd;E(a@A1z?-s7J`ckuWe0`eaJ1o9sL!pM94vyu1s7ee0SpM|{1 ze`_M|@y|ex`DcEM9P`io207-Rxdb`ppV@^R^Utgy$NV#^$T9!S_mE@$nSVl#`Deb1 z9P`gyj2!dN{2DptpScJ*=AZc$a?C&TU&t~4%rB8+{+a(oj`?SPfgJPC{2V#vpZOVb z%s`z2ik|p{KF9Bn19$BIp!Y*Bgg#1R>(2`Xa{bN`G+l#WBxh2 zAU8wxpR+S^%s*!*s|poE?y3{yEzt$NV$@fgJPC{1iFnpZRy>n1ALw$T9!S zw~=H1nSVr%`DcED9P`io7&+#j`4Mu=Kl5+MG5^dDkz@XuA0Ws4GyjSl^UwSXa?C&T zedL&b=AV&c{y8I&WB!?MA;x_T=4;3?|IAmBWB!@H zM~?YtzJeU{&wLrVQL6vU-yz5RGk=R5^Ur(^9AIXf9CVZG5^ek$T9!S z3UbUpvy2?`&+J5w`Dd1pWB!>BBFFqQA3%=zXWow-^Uo|I$NV!3$T9!SJaWuGGlv}W z&&(pn{4+DiG5^dCLoe;9}y z^ADRK$Na+p3Z6qe_2zy>FlQYO(!+YY&xvzfTn$$_GsF%X;{-{O&c_=-qhTL z=(o{D(SJlgh`tkjHTrxs7yV82;pknoQ~&ztRnd#0=S1g4kB=S^of;h<9UUDR9UL7H zT`QW1ipY}4mywTYul^g6mm{XYjfEf%`}IW!kUb;XdI$;NI!p-4X6q z?f`dfw;!!T8qOlxv;P<856*9$qVu%#h;x^7i}NGr3Mb{9;mmQ4aSn5)IQuxGo$YDY z{-(})PJgG#389M5@gd%!ef!VTF2-Nu0o;L~;%Z!ib1@IIa0Fe4PQV!KMC{p|Mq~}z zVJO5B@um1!yeHleFNq@U-G5BnBYq~X7gve};!H6|%oK-;{lz%3s~91+5(C8AqMvYS z_x_^rr{TYZ-wMARE{8k9PlO+!{rfkCe;B?je17=U@Co4=;RD0_hIbEdA086kG`wE8 zf4C_eva7VC<3sx$`&IjSJ7@pKe%QXtzSX{-_V8b1pJUInkGGGor`qG~(e_Atusy(D z%TCxLv?TOp=;P3Pp*Lt3e=+n-=&{hfp`V9-61qBcY3O{~$A41uYxERJzWJ%9J}Ax)G#gEjgwkeDVkVDt5Qv*=;f4F_(hSXL`Hu;Mx-f^ zk=R3|DUFfXU8E_Ckr*w~l*CAEF4C04NNgt3l)^|15^2g{Bu0reB`^}Zi8SRe61$2t zr7se@h%{v{5<81DB`*>?i8SRd5<7}Cr7jXXh%{v`65ES3B`y*pkyd%jqP?0ZfR3tVLY06V128cAJ zDH0otG-W9g8;LX}DH0osH03A~8;CTeC=%<7G-W6f>mjWYlx41qv`SDGZHi5+1ZB~t z*tAMe7Hx`6s|01yrr5MfP!?^9O{)ZD(Wcn6N>CPUicPBoWznYCv`SExnG|VCP}Eqf zNK<|y(NCl)J&|Y;Y06F{5+Y5>iA1wVQ*I&=7imgOB&f$JGm&T#X-Z5aq9RRsi9|%C zDJ_w3MVhh_2}h(UDUpCkQ%)iwM4D0(iLgjhMj~O0G$kYwA(5thM8XnjN=GD2k)~`! z!a!OjBa1e`rd2YsXaj6oB_oSAz@}9)vS8DfPup43VOAd?ZL|6-(jiuVLE2*VKGG(uKO=3hdJidr6!j2oXH5~Mq_*C0-Y)Q46#;-+6vC4Qtq!g=+Ux}1rmGQVpDOMSeiIifM@u)~CRvC|olwy_fut+IZ84rn+ zVij#eO%bbP8xJ5wu#)P2q?lH;4K>BIqHU-trWI{NO);%#8)}MaMcYtQOe@-knqpef zHq;c;%D7Xch*s2FcZd|hip1?ArC4SBT%;7MjN3#?vC8qJVi%J`8;DOMTRij-oN@k5a!R+0H@kYZGcuaRO@iA6{;s>D}FF{;GB zkYZGcFOgzYiGL!+s1jcw#i$aWBgLo^pCLu4q9G9f5GiKW)gr~LY8NSHRhvjLtF96$ zX4RD<#jN^)NHMFf5GiKW^JrzES)^TR2LD)YQ> zN|MSvH=L57GS3O8B&W=?!zqa=^Q>@+DCL@Gij-uOX`LZb5>cjgx=2Yvnbv6{B>`nx zr;3#1lWENtDTyc3nkOWjOlz)?Xfmx+gangmoh%4T^uKe$l1k?6uw;^XQdknnJTWYJ zWS&4T8K?g_J}g;e&I(Hsna71Chs^x)+%GKoV@?c9`j`{Kl0D|p zVM!kIsIcUYd1P2p$D9$C%rTD$OX8T*!^9icJUmRWam~ZRL>kwe7ADNN=ArNy^C>*U z{2d-)K7j|AkKys<5_e0{N#bWxlt|nlMUh0C6a^9&OOYpWt`s>E^QFj=I6;aGi6f=xAaSr1 z&ym9VY`m^7q$zrfaV9)4JU{N zYI>N*iv?U>5UHkP0nHGp4#xtTB2pcO1vE*dnuY~5O{6*$3uvN9bqE&F zRFUdnETG9E)j?u`oGzAmpjbfjg~U{`faVK{1H=NFFC?aj1vFnsOco1hzL1zC7SMbl zvH$X4a?oGxBhqr>Smxd$EvJrU?j_Q4@>u3Lk(SfPGWQf|Ie{#5Eadd16m+LhcAQP< zN~hU1#g+05w8Af}y8plG{{R2v{r}Ff^2CmZUP9*>RxhG+4^|!M+?~~P=p4=JS#*wK z^#VF~WA!{bcV)E@ovQGOhbrh)g-<+GMyD!#;-OA-s=_B8Dxq@+{)-|yw`WyA=SWt0 zbZ)1Vb1XVX@Mq7Ub6ZwVqjNZ`r_i|#tKXn=7^^4IIh56}(Mctc{BBR6lWHKTeuYjd zf~0yJom2%$^%y#-43g?mbZ)`w5p+@^BtLr?om2@)^$Vs$qUMMz@um7XItlqw-G)wLzEnR$CqZATThU3>Cxr{q zN!XWa0Xm8MQl-&J;Fl_ePDTDWEJ z(W%HEcaA})B7fYOiB3iSxN|f*75U?#ThK}5r`AF@qm$4t)lKMBu#JaqL?_W!es&c) ziT+YuiB7`5R6jr`@n5Q+qI5p1pP(dbCi?8hD9Ngc)D0-fx{1{FC{g7k)paPH#p*{W zQ5uk+U5gUs0jYk75+wquu0e@10V(GwlqeO*&#pjeKC8=7n#bxgl;*O!6s1#GU4jyo zR`M?{Mv1B`sV+i^3M{EEM2TuFsTQC_WtLQFlulrkLWznk`Pl_1QN1PA`6yAzCDnN- zQPm~YxhNgO>Kv42vN{{3qgkDW(ow9=MCnLYXP`8L)#)f5!Rj=Wrn5Q~B~^sQL-SEm zRaiVU6(v=M#X|?6r0TGEXbMV)@L$YB>0nlKQKDohU7do`fviqOX)3EZC>_9RHcC@i zorKb4Rwtq~iPZ@x?a%6Xl=fpa3#Eyyjzehzt7B2xm(?*Sjb}9zrG1nFee=Cp(Kp|V z6@Bw@tmvEX$%?)?^AGgRnSY>f&iteGSfLLmvO=Z$19e-+KI;jFQK{NhmS@Li?lS@sEz|@sEz|@$YbyJpLVq zlE=SkD0%!l6eW*;hoI!~?_iWX{vCvp$G-znV*WXFJdc0-q2%#zB1#_rCZOc;Z(o!= z{*6b; zK8hay)su6=f7UlBGXJdiQDpvEe@2n{XT66a^UwMdip)RjT@;yr);lON z|Ewh_GXJbD6h|p`S~V1ze^wPm=AX3~MdqLNHHyqXYY~dfKkF+LnSa*5P-OmDU!utT z!!al_|1c9p<{yqmk@<(CP-On$NEDfWn1LemkM05%nSYp$BJ+>l=v8F?fzD#)pK}n3 z%s=Nq6q$d{R1`h_9e^V9&zXWE^UwMxip)Rj3ly1u*5@cP|E$kYWd2$IK#}=py^SLC z&-x>Z%s=Zb6q$e4A5h$o`|nK@nSa(BC^G-7Pf=w4S${{7`DcBCBJva^Ff7WX#GXJbsQDpvEzekbz zXT5?V^Ur!2MdqLNI~19J)^AZ{{#h@f$o#WjM3MPty?`R~&w3t3=AX3?MdqJXL6P}q zl~H8=S)C{{|Ev;<%s;D$BJsb_-f7UZ7F#oKlQDFXAPocp4vwnjD^Ur!RX5V6@LZi*d zi;+U)>Byszdm^_*ejI6!ToUl+yOxOKe(Qea{+-?p@CWyIZYRC_?pN;p?j7!p?hoC| z-IRMq&%N~ex8E&xK65^B-gbWPEOfHYlg>l*{<~Y8>zpf{3!Sr_xy~%-2C zM`tMAOJCP%bzFRlf8k^N39sWt6!0`2#XYzUKc;u!(Y?pA*k`cvrj(2MlWxu-*qhVBX77W#3hJ#=yCoY36RtkCq( z)X@0Q=vDvyul9iT{<8n;eoqB1QkmGY&b03{H=|`Q>kJYbNO3xe)ulL%L|lqfNra`C zZ{KHhNimPaKc$#U;v*?eA@L_EP9}k?Rd%=Oy;WDM>@IJ|w^MGQ*FD~Wc9j||=XTLf zslm0xn`l>=!4hwvU1bK_-2m+>GuZC>qMb4W{j=9aJ0%7ZuZecb3nX3@?UWWs{9d$E zRv__;Xs4t=;$_iJIf2CQL_4Jf62BGglo3e0B-$wlz!IHkSNXsaCA6!2V2L8yRX(sp0qrUuSRyalDIZW{Inhq( zfJ9cbQ#K%x5$%)=NOXvH$^|5z6YZ1=NIWarDHD)*Mzm8RAn~+lr#wL7smSZr+fpEW zmT`y_g2et(gh`B(!X~k+6d@8Lq_9YAC51_1fD{IawMm4(CDBicZ%C+38B1^#e-C^? zA00y1ffha|#jD((ks7N$`v<9=l=_s^Fs1%ZO0IHS_=J>P<+kuKDP9-7qBVR;8$s_*{xAi4Ub%OyV6Wz9#Xi6pKhaFU40Ra#H+@ z#BZedlElMO{FB68QhY(;Rw+IwalI6uk+@2VPe{n~KKwBWdESRVA|cQF@ZV_K$n!q@ zAqjcjhd&@8&-?ISNyzg){1+0hOYuI57p3?!iGmdGk$75)KaqG;ig!ueBgH!;Zj<6| z5PgW~H4ceii*_n;NIW6hslp-gE748`4vEJ_JJmNN9uw_U-jH}yv{Q9M;t|nK#SMvv zMLX3tBpyP$Ds3!h0NPb)V>uh6U6nSLvk}@=X=6DXQaY8cEQesEN*l{rAML8Nv7GhL zu1XurSr_f9w6UCZ(5^}w%UN5ro2sz~MLShC)anDGjS3qQ_lq{FYe?KD+Ni7{aj$5j zs)ocpqK%3g5_gL>s%c2vCEBQ@A@NJmMimW-Ux+p;Xb7YOMH|&K^vRu~jmjAkcZfEs zW=PyF+NhWz@pI9pP786HXgfuH@-xwPvJ$t7wmC}NBHCsvakFSUNr{`#cB1;?;zqQc z!0M-HJD$}~(8jq#{1|O~YKR-q#+(<|qwN^}ch{k9CaWKz?PyllqU|VFKNM|8s>ZGn zZ8Ma(TC^RZM7wC4u0)$?qtk-E##N&2FeR=OZPS$afoMBai7Q0gAxc~>+74FYGSPOB z5|@g$1C_W$v`tmwV$pVh5*LZKDN0-@+9oTpK(tL#A}!kXS0W|a_EX{l(KbvR{hX6hEOsPm`36uDGnv^ODPT^ zaf=iOlekWbgGgK{#epO)lwvB0v!ytI#9S$+keDUKezDhi_$HE2!#9D18oqr=sNow= zLJi+OB-HTjO+pRdUL@4;jU%CkZ%-0x_{Ne@!#9S68ooV9sNvh4gc`olB-HSYBB6$F zHxg?2b|s;PZx>ueh?3wG^brqVm=q76O^SyvM2d&cBE`dJlH%brNO8*emK3LqZ%A>< zpc;i>C5LZK!?5I$ZFdb)^2oNkIw^T%+g**6JhJWfC#BB+ok^@OdvYfdt4XmViI@~S zkWiCldrJK^`N>EUUr4bXiN8rPg2cO0Y)j%bDTb4HL5gii$o&Um7zw%mKnx`z_aBHM zB;@`Bv1Rk&JVslPP-Czj6xTE#A&@oiqm?P6sPsYq&TgAO^Va{B2t{z zzaqtB^e<98MqiTRG5RO2B2LM^Pg1JCSE*J~vfvRk!}#o_3C3qH%`fg58d2^U8c^;T z8c*&S8cyyR8cpsQd1%!$^2n-Z`jJpQ(?UY^OoD{!nI;mdXQCuj&qPS5o^eU2o}pj< zTlN0`Rqy}*AAJA+Lb`aQdv^A7SV&ioQvCr7>GDykH?dG%Z^i95u#ie@`Pu7ONF}yZ zuVEq8*izANDo~Lv)$g&8s%)uV!9pstrFt0)sm_+_cUVY;HYq%gg;Z%v^%xdXsV&u` zSV*hXbY{%(YkcHsCxE~8uu^q>KSg4BaxN{yB zs$x5C{}u~Xu^qQx!a`MS$L$xf&{ThGzkr2QZBx7Uv#3zHE!8uqP`xeH)2L9vE!9(~ zP{l3PZ&0CTda22^A{5r7EIAmA6y{ zRH*cpDvt`)-csdIq2gPrCsCp5TdH59LglwqPoP5ew^YAEMdh@({WvPB0*~8|p`t4A zxcw+9ssfMOkD#I|@VNajDyjmH+Yg~~EFa}TR8$2Xw;w=7Rp4>^epFNi9=Gp9MOEN& z`(9M20+;RHgUSq6ccVfzxcuxcRHz7->X)cc6)x2;P@ythsyk7kI$WwdP@zIxs@qYa zN?fX+qe7*)RJWl*wYXG2LxqZQscuDus&T2#L50e3sm?})>T#*gLWK%)sm?@&DsrjL zK!r+jsZK|QYI3PgLxqZRsZK>jRpoK}7F1MK9=C5sMOEc-`zBOWRUWr*L`7x1xcyU9 zR8=0ge}amt%H#HrQQ4D^cLOS_Dv#UOqoS(vxP2WeRFzX}pkAZ0Tq^1{s>`LKUK_=V zdQD}#IH=dCG?!88HLA^}qF$roTq^1{s?MdNUZe6{D(bZzlyc5RWqVfCLnB#H4{gVa zdT0bI>Y;5}Q4bAgMLo2QQudEf8OG{bREDzpAu2;yU4zQjtgc37FspV{wqn(W%9gCI zLS+k9SE8~xs~@1U8LKN$8N}*xR5oRG87c!=U5d&ktS&)i0IT_^Y|LsNDjTtyi^_(q zPC;b@RwtvfKC6pSS&!94sHl=XZeNJXI{euJRMuvdM#bY_3Kfrk7og(t?|f7|{+)-4 z$3N<4kAHJe@%T3z6_0->q2lrHL{vQfoq&qRzvEG1{@JroVgA|2p~C#Lk41&~XCH$K z^Ut1%3iHoC8WrZBeH1FpKl?~jn1A*RRG5GE5vVZ#?CGd@{5u>KkAH`u;_+`9Djxq1 zMaARaAt-zNI~Zk;e+QxL@o#sOJ^qbG+2h|Rls*3KhO)=MT~YSyjIzhSNho{#+aG0*fBT{A@oyr^9{(nw%>2V`C^P@?GnAQsxD{pQ zA8tXJ`G=cPX8z$Ol$n3H5oP8dJzH32{?V@km6?BZkEG1}b528<`RAO9vd6!jQTF(^ z6UrX{c0}3Z-@Yh&{2Pz5$G?40_V~9q${zprLfPZrIFvp9?TNC-zp*HL{2PO^$G<&L z_V~90${zo=N7>`wNR&PPZHKbQzY!>V{M!~~kAK5a_V~9A${zoQq3rQ*D9RrHhM?^6 zZ)=o2{tZUi&d;HrHWsiSbpv?TUH%FQIXK#iw^UofHGV{;g6lLb0JrHH)pS=mn z%s+bo%FI7|W0aYH_C_c(|LhG>X8ze5pv?RWeS~9{<)s+2h~ZD0}={3uTXgYohG&Zw-_^ z{;iI($G_E3X8z#@l$n3H9%bequ0xsmhaaKL{KK^iqwMi7hO)=MCX_w?MN#(n7eU$M zpNlf{FZ314%)ijTP-gyxzC`)|*t_p2IjZyB_g!f}HKC`5oO2dA=bS_qAV3I_lMp%Q zAZ#!>=VX#G5)K$+3>aff9^7d<=k7rQ0VWw^z$D+d_VaS^99>~w?$TZ7cNg|Q-=(Ij zw@TfgU0pR(oBnx!$7}S@`v|Y8e<5B||A5!jKZ7ClFTjxc=VM6y^Dw0TxfoLa91N*{ z2@KIc?_U_Af8nthqJQ4sFhu{n4>3glybmx$|Gf7xME|_^Fhu{ncQHi&yuV_I{(0|U zi2iwRV~GBFZ()f3d9yG?|GYObME|@uFhu{nnHZvf-V6-UKks!6(LZklL-fz5dDMvOep<>{7fkQgZxY={lk?QqJOvoL-Y@qV~GCY zG7Ql_x%NFo|70b&A^L|)Fhu{tDHx)E;V~GZf8k^d(LXPbA^PVH%lCh||Nk9{XqSO| zl5Z#1>%UM|&0C^(a?fvjjNI+)E;Gxl6P)ko{KdSZ+}}7~I(x`}{Qt@SF{?jt3pz zYIojv(4%fryY@yh=>Pls*Z$i>-)qqS@m{}gpB_}lmL|GuZ?KGSm= z^r(mC=AdVLAsMt?5_nE~THgF~8uX}#=H{Shdm;G%%HqJ>)A0vzp4mTu8;;#++#J>- z`1YaiHR%8R0UZ4TvWI1X;BVg+cCi2UDU-X?fBS^d`i*+%dkyx#`~c4OLNaJsEO^d? zmQU=Q20iMbxjE?BUPuNl3kT16(DI3$)1XH^G&cu5+Y8B{Wf9>y4_ZF4a~kxhhvw#> zXL}(T^xoe!X!*p>Y0#q{nwx{3?S({*y}lWAtj6H%E0}CBcK7Z6*RjUv8U5RbzSp4t zvl^pcK=$yS-wZZBFtUUFH#Ova^z9Qyt1;@K?={%}QjOVONCrLby9O=qqd5(F)I)P~ z(6hae40@068nnER<}~P056#U%&-Oy{Uf%tiLC5dqX!iH=`tn|$!y)Lm4}Gse|L6De z=ogSZyxTW}jo-_5u%qA0-#%fs_wu(7eXqg(_wVJ=FC>HB^}7Zw@1t*@FnZ9V9-5nj zp6!KX(7Sxspyhour$LW;Xl@RAwilB3^3LB3I({z?%>G_pZ|hz6n}f^WKJ>i?{h!~< zqhCPw@J`eZuIs#i)nA*I@t4_wsBn^uzW4AAbM;f8_7~XLuel zn1u|_BL;6G!}Ey28_4iHVlWdKo<|I3Aj9*B!RyHIJYq0{49_D5U1WG3G3X$}^N2wk z8JPp7po9$1BL+oecpfn*Aj9*BK^_^NM+}CM;d#U$hm4*_d^ z&m+oy(esG1U-Uep>=!+cDEmdvBg%f!^N6xvcpee5Uw9r-?qr$K^N80Y!}EyYb;$5M zVt6ewJJ>6e;Wfx?&$=3!?Q8{EWVU5xklBWnMrLbP3Yo1~e?ewT)@#UY!FmRn%~^jy zW;52)$ZX0QLS_@ztH^B3dIgz{ST7^9A?qb%HekJo%=)YskXeuQJTmLD{*25ztmlwf zoAnejYq6e0W=+=bky(TF1Tw3$euvCztjCdAmGxU>#;_hkW);?NkXf1aC^9RtevQnE ztY0Cs0_&H^EYJD{GRv_ZL1tOjbYzxcO+#jB*2Bmw#rioiOR}y)W(n4n$Slsf0-42F z4u1O;!g>&yg;@_Evk>ckWEN!Ihs*-3dy$!+^;2Z#W8H(yysW#Cna397b2P}3 z&r!sZ&(Q!&K1WHGe2)5A@=57q$tR_kC7+ZYmV8n|mV8oRE0n*bVaeYzV9DRoXI+kr z$GQv|*H&;BG7jrbWD=}9kiL+0JJJ`hZbSNf)~!gN$GRNpb6J-meGcmn5bnVBLuH>8u-&K8faeitAD2>t^S>cwEA}{((2ztq}9LukyigEAg%uGhqU^43exJ|$w;ezCn2r= zorpC33r;|q{sqS)P5*-9kfwjZu}IUuU<%UoFE|Ei^{kqnrscuLHZZUzo7az8EN(J zXr$G@qmWkrjzn7h+ZSo|Zy%)9zwt<`e|saX{vCm|`gb_e>fd2VtAB?gt^OT?wEA~2 z((2zqNUMJbBCY;SLR$Sh0BQAaFQnDKJ&{)b#v!f#?SZuVw>#46-)=~&f4d^B{_TRa z`nNOE>fcUCtAAsWR{wTHTK(GrY4vY=q}9LekXHY;MOyva25I$gYoyh`t&mp#wnSR} zTM=pXZv~{)zvYou|CU2q{o4X*^>1^e)xXV*jgh8*!A3~azhFb8 z>0ht`()2G_A8GaPHKf(QA*9v6SCLl#UXgd3^+0|vHckKJPXB58hZm8ie{%onH2stH z`nL#D>fgdhsecP0rT#65l=`;-QtIFQNU4AGA*KG! zifRy@|M2i0TpCCp5{C^;&{`DiJ{`DcH{`DfI{`DZG{)I@X ze?Ut8Gf1g_0aEIpkCgi7A*KGwPtvM?e?m(Adlo76?~h2Sf6pML{`~lk`saUyl=_!IivIckLW=(RUn52T z{I8IrfBu(9(LetSr0AdjIa2h`|0h!P&;JZ5`saU&6#eu6h7|qtKSYZD`5z!f|NQrn zqJRE-NYOw4U8Lxr|5v2wpZ^Y0^v{1ADf;KXg%thsXCX!Z{5O%JfBqXt(LaACQuNQC zffW7oUq_1m`6EctKfj9<{qs9W(LcY96#esCNYOvPi4^_wUqFif`OhOo|NKAm`u`R2 z_5WLvBgxg|`u}Tv3-lh+^GNtfxHWDv9WzF5#`&Dz=N;rub3S&qOk6Q{F8|Bvld<1* z`b4hj%<1&WsE6j}>66)BNCv&*cMV$3gU@NuqaK=@gP!e$WY9Z&*P!Lx;hY9N>Y=$g z=-FOK2EF}v4O-3}&S}u29-5njp6!L?{N;Av3_3o4nVkLn<+^hIat`O>zkTR?4f;Qy zza0GnvWK_*X0Y-3OFP)n=P$o~!ffX+zkTR?4fel3e>wVvWYF7u*P!JS`|T4(4|>!? zb92zMy^sug>+c%0d}8M`=ur>N%|XxhLNe&BzH89(iJjA+M?Ew*2R+*h$)LCVu0hKu zc20vH_0ZfL^lUFAYHab%pkp=qXIEpLt@jx>hpQgnKJ>i?{h!qs{Q|OwH~(g^u^M); z|E9(U2e19@6GndkM?Lht2K!&CG208tpf~%jLCa;5ISqQ$LvwS`v%QcEdeiS3v@kQL zL63T9ZVr037m`75@?C=#X67{LQ4h_{LC^L=GU$!JYtX{XoCZDWp}9He*Od8m0VC=va1M3Zp8CZH?!GZn(H~Cre{p8GKJ()|soO~wvSn}cI zJ;|GrS0pcz)dr7C9+sSt++Efh+$6bHa>eB0$$67u|JVH=_rKHMl~o2){m=J5+5fBl z2m9}k^#w2OKd=9k{>l9Z^^fo0xqqwv4fU$%eY{(*kK@AJM7``+wp%5O5f+V^bV z<9*X*Rl!^OuIjtE@2tKP`i|(E*f*|khrZ4F*6CZhZ^<97|NozH{oj4^zxn^aoqKv# zev>#EUM+v}xUFlXrrWw!>RwydN!?=Wda0{y-5_Od1Qt`b) zlHsjV@x4Nl;cZg!y+V@V?Naf*LXu(p`!MmnLXzQ~Qt`b)lHpxa@x4Nl;oVa4y+V@V zJyP+#LXzQ6G0gLbayP(Xo=23s0S@y#V)y`tc^)ymAHzJ47~Y3ro<|Jt#W2q!nkt5Q z9??`V%=3t*jA5QfG$jo4JfbOLnCB5q0mD3xX!025c|G%I*NH7!@Q1S{)}N>M={S~nAcIvpD-NR>mKG=3=gpW zh~Xsb84UNc{(#{=*3%g7Wj%%A9@di>4q3m)Fj!Au*sy+w;ehoxhJDs=G3>D(!?4Tx z4Tc?Ca)Y(u1Zz3uE@Ul>+y$&7C3*>km#XN!>ucMgh$niRgnTFhn_I1s} z$eqCYIdaFd9zyOo*3XbTmh~WVQ&ZGfbrf?0 za=eaWu1Aj7QOtG7@j8mR7CBx=G1nl+>nP@G5s1#-NOVlGE+ z55DeY$nDPh339u!E=6uv)+Na8!um0CJF|X-+)k{EksHgJirkK@i;&xabs=)w+midQ z<+fujg50*Og^}BawGeV!vlc{dE7k(YZONJ+xh+`pA-6eeUgS1o&4b*gw#)^{@j8k* zA30t}G3O!2>nP@25s7IM6fV$MX4*HO$F$niRgIUPA(M=_@% z$LlEOROHmZQ;<{tPDYOYnUj#Cf96Ew=$|dp4E+n`GeiGE`OMJ2P(Cy2-=WB< ze}^Ea{vC{*`gag=>fheTsegMRr~d7Uoced5{7eJi2a}Lf{|-P-{hNrK`nNxF>fZ$9 z)W7|Zqkm>!fesYs((8mtNv||topYdvg+Tq$f|$aAglgujjZ~&6|(BzmdL7qTOdpS zLW3;*3j<{7U+5!C|75l2Ed2{zWa(e%AWQ$k1hVu`?qr>%fA|_%`iHNOrGMca$kM;? zc4X;acpI|xFT535`WN1UtopY(vg+Sv$f|#vBCGywf~@+tCbH_^8px`Dt0SxaZH%n? zw-K`H--gJle;XjH{;iL!`nMjk>fgG^s(W<_M_pIHG}`e&9$mj0RLkfncSS!C&-Sq549XO>2m{+XqarGI8g zWa*z-0$KWpFOj8x_ySq_Co6bo=^y@yEd9f0$kIQ2iY)!ZC&e-X0k-vF}eUlLjMZxLkGzlD)i{}w`4{aX-O z^=|=W)xY_XRsZHgR{fh7S@mxoWYxbxWYxcZWa*#jLze!TUS#Q?=|PtMnGjj}XMimI zGxC|Ce?~qt^v}p=hW;7(%+Nn0pBegR- z*Ce8UMDIkMs2B}Je~KQDrbYKeH_EsF^P^Lv$EV0}ILbekb{9@?H7q zf^zaN$>);4OFojkH+i#s>%TC0TJo6W!O8K-oswH5*G;aRTp~H2eCPkF|D*m{{muU2 z{#W{+>HkgtL;ZKkH~vfd&+R{{|H%G{{d@Fp*S~T9n*Gc7FCyRfy}r---s_vuSM5vp zJ>U2HzF+j+*LSOY+n?HZM&Gf0hxF~!w@cqvee3s)>03&^>-Y5jtM}vHw|m>Yh2B?X z#e?7WKHPhE?+vov!FjzW_a5Clsdvxb9eOwIU8{G6-o<(cdxM_Odp?l04r)Ewo)>$b zl9dh~=((-u>Yg9TItR!19M-d6&#paN_iWg+TF){)3-P2uI?1>vdTG-L*T34f4##QjX}-*c_3 zaCWw=j&lU|$L`n`8)0=UhlP=ZYd$sani07xd`j-5{)F5_`CfCgxzb!@PB&A`!DhVK z$!uxXGpm>-&3q;dz6$;xycM*9eDF%}Oz@lF=fPdU^}(gVxxq=nk--7MxM2HWlVHtY z`CySC3Vi>c{`>w6zv`#`7yKvvU;6j^xB6H4Q~fjj6W`c=l59)n%^oS)fSor(93W{YPGi%~oW4yvb;72dI|G|` z@^o>4Y)fWO*;c#(J9~zhC~2opW7E!`zD+xU!ls=;1DkdVbum%4C3C23E8c*eLqqx8 zOnt;oqQ<73MSYug8ih?ej|MjFMCxLH*_OSBUyOXgGAR=fc_pN7~^(oU$x<`VI)^=;ZI6*ldh8rZaxs*C+(TQaN4w&D%g zSvADIl6G1(HtoFX+q4raY}%PMuxY1O7yHV#WNwvh#T&45YlwX$?c{1~+S%2&X{T4% zwDW6V(@wB1_K|JL3@h7;H(+Pj5aT876l-kSIo7vnCt29Evut3~PO~n?%eG{mm2Jfv zu=8w)y(R5LYi!z?*0*V=TEscs&b5I}JK4I}+f1E)zTH;*xSef7Sv6?tbUWP|n|8kS zZQ2PJHtmcX*tAow>sDo3GUv)_AMpn4oEyrzLsO^QN!Qr4v#xK`PP?#a=iR`jop@ch zBHNOgSGE;z;Dq>JKa`b=rcOWJ`epMt`<}3QY@Dz;CC$(XS++IVZY$ov(eWRK zvi8x`=|{zBY#te>Z}W&aVe{}f1DjS`*DcAmL|YkGya9`CD61z;oi5nM+ltd_>)W*2 z!lu4I&%tvIc=zD=twY+7vtn^s%bEy%V+TiI6p zEQ@U@D>zM^F4)G~iqmTA+qBxkrqwpEX|;7-@qW5!E8B{nWw8xq4XCNp1>1OAaawJC zn^s%cwAuzXt+uW!-cJ{8Wn1yHEViMnA~kioU>k2MPOGhN(`pNwR@=a))z)>z`{|;s zY%6}2#Ws|6sHRRAY~yXkX|?rjT5Vy|Y8%+J+PbcIKV7tyZN<;B*oLx_)zs;NZM>~G zt+u{Rt1WC=Z3CNDTi4CVwnSUmR{SiBZ76GDO`R^-#@mY1YU|sy+QO#QHn3^6b=|aV zOSF}3#m})W*2!lu)W*2!luhVbf|G*tFWZ?vQLtw3The&$8HtvZ~nB z>4I&%tvIc=zD=twY+7vtn^s%beO0z4+RC=#XIX4RS(j|;bip>>R-9H_-=@_THm$aS zO{=ZzzG9|M6K!Q%@~mkV+fY_En>tOfjkgu2)z-IZwS`TqZD7-C>$)$?wnSUmR{SiB zZRoxvDcHu_iqmTA+qBxkrqwpEX|;9Tmt6Kvyc#c8$mZCY(% z(`p;owA#Avi?S`zR<;#C%VHbK3T#uS3AXXJ;X|)Y(T5VnT1=*HpE8B{n zWw8xq4Y#S&1lxF9aawJCn^s%cwAuzXt+uZFylhLfm2Jh(ve<^Q3f$Cbf^EF5IIXt6 zO{*w?P#|ZKWm5h4?|hYZtAq{ zxve<2i_^D%YPE&UZQ?%-Y+7wy_gUGNXe;B2pJlNPWi`C1(*)aiTya`$eVbNW*tFUP zHm$a<`$yT9Xe--_pJlNPWj(#A(*)aiTX9-#eVbNW*tFUPHm$a<`;2T$w3The&$8Ht zvLfHqX@YIMtvIc=zD=twY+7vtn^s%b{ex^vw3The&$8Ht?$eTjZM>~GSB}%Sxl)|4 zxni7wtpC^dVd4|_wM5^nzII=+?=SKV`l-H0`+nYcPv6b*9r{Oo=k%T2H@WX%`z?Cw zz76|U?^~{Kk-n%e=>4MiBl#ZP?XC1?dSB{&M!rc;@4c`0w%%)dFYP_Q_q5()dk^c~ zzjs{kj=fv-uHU;_?{dA1_Wrl42OiinzGs)7ZF)BDS*vHIo+W!0=;`nA!q3CMg>QwO zupFkt7iImxN5hB0yTTj7%jDbjY2lRrwR+%Y;kx0NaG7x7Fp@L3U&-0Hzv6Y&0zz54~{AXXbq~)6``VwU^B^ zvZm6*<{opCxkA2epJ9$OhnWdxce9<@#H?jjG>e;g<@@&6!N3MP zgTWoab@Gk-yx^2za&S;EKG-?fD%c=cEm$^KI2e%c+@Jd&`fvJ8KkvWlKkGm4PxtSY zRSmE5FZR#!PwC+ zH}4C))4VC(A-baBM&26U^4_BI-P^cdx*xf3xox-TzV`pO|I2lC`5%h*03b@#P_*-Z zl&GR;r~fEXLDA0sQKF2Zo&2Lj2}POv9XCo8QM7Y^lqjHRr~W9BN72swQDPWHJMl+} z9Ex_{j}loF?X({yGAPQdA8#d%qMh}lL<&Va=|_pbplIj(2ri0t%8%fnXlMKgGG;sB zN9JEB%6u2-@SyQo#ms%izwPjK1#fRg3R&p-{^T1>>M8@{)~d1 z;-hdC6zmKiCH{zlo#3OyGbq^kJqlMw!A|c{;twdu>>h9BX%y`29wnYa!A|Z`;z<_{0;>>u}6u=QIL5(-pX%Lu=9G9cnk$Qtw)L9pkQb9DDfx? zc2bWLzed5%=~3cWDA*}IO8gRqDcs60P_Q$4lz0S%$^5hFC>+h2hQd*-hf%Pzd6f7$ z3U)G&5)Yvub9p?LpP_IV>p>LkR30TBK*7%BQR03S>_i?V?nA-O<5A*X6znt}C4P#6 z%;ND@?m@xM;!)ym6zn7(CGJAO&f!twCn(q{JW5=Of}O#m#3d-$2|P;NiGs}E@mB6Y z!Oq`N;&v45^c^K`L&478QQ}qrjx{Iv&flDA?ILN?e12ovfq8)hO7xI!auH zf}N_P#FZ%6nL0{bfr6c=qr~MX$UGfy#LPL-QKk?p z=R`-ELX4afjWdPVI49b}6k_6>Xm?YHg>#}KOd$r&i4He~*f%FS%oJkYoaj(fh;?(K zLrfvY&4~^+h1fPHI>;1a+MMV>Q;2L#GKCm6CprKHb?to=)V23eP}kl?L0$VR3hLTB zD5z_1qd?cpTPV;qGYbW}X5K`Bu9-JXA$HA)CYnObniK7B3bATVG{F>N)SPHPlaEbv zqJ2$1Ce4ZVG5J_DCmL_^F=$S-x5>wzIniDwA9LnJdzyT#nG@||@-b#kw6n>_mO0T* zCLdGgL}N`pmduHEH2D}ZC)&Z}W5=9mdy|hDbE54`K32?$wl(<}F(=x_TpZD8`TTTZmT$;WIt(RwBytK~%NntY6w6Rl(Nu~|;Ew#mn2Ini1s zAB*KgYnprvmJ_XE^08M=w7SX1TshHdCLe3%M5~&7jFl6OG5OdkCtAhiW2&5JWs{Gk za-x+?K8DJPRy6t8DJNRNF!`7!CtBR(W0{<2G2|7d znaC?lGms}t=5^!=lNmvtFqtm$gvoS}CrqY|JYg~|Zmlcz}wm^@9I-{fi1d?rtm<~4bmG>^&Cq(PIXNs-CZ zqygk(liVnjT~3rdlP5~9Ec!Pnk0ryEq>QbVWwE_4ZLK2pku6!u&3nt1tO+OU|HaSP zQmSZcd#TrK?IQJ@tv#fku(h{Ty#84-++XT`Tk%qXx7j*e>Ka=|Oa0i^u~O&Qx=-pP zTMtMbWowMoBwMRW?PY54?+u8(qD^@a$m(hFK{#m@T-ZQr1#r7VvwT0Bf zwziVG$JW+TH`&@o>Iz%iN?l}YJE=2l?I3lWtsSKfvo%&~f~}pTcDJ>&)ONOZmDtv|`Tc=3*woa9=51-pQP3l8i zr%SzQ>kO%;tuv+aw$74z)z;Zk&)Pai>Tz4=N=>(Qp47dz&X>By)&){m*}72bVp|tU zon>pP)CsmOmO8@LkEABr`mxkFTbD@fVCzz;&20TdY8_jbNv&+_a;YV4T_H8Utt+K^ zZCw>#{~zx@`NPluf71JI@9Vu)IhXNb@6)}H_CC~mm;6+~WxW^3nT#pDhxG2-yKC<@ zy&Lte(Yw5y#~AE2Jzw^G)bmzPyQkRmTF-MmPxSnv=YILgfNOew+;dLPNj*pPOzPRI zXKc?FJ?r(1=~-HSHlSZF!+sXNAI=QxVJ>_*d?tJ>d^o&EemdZa@S^aH@VM}>a6-6y zxLvqOxK_BL{CvQ?@>7Ce%h`)}c)np@0O=3;Y}Il&xZCYo_(2eX-3$E++r zCoup289)E;9p@e9P4IU2w(~ae){>tYSlpY}3*E2XkKK3Nu3L6f?(_0S)&HR!A8fgi z^BKzV(U#PwD949eQlFq4A8$$h1LgRDOX_2k<0CGqzoQ%S=M_y8Ep&TE2Nv(-;eC#E)2Fmflm(=Pg z$46gMtDzhpeo3v0a(w(HGxQcH#|L0io1+{bfk|zKa(oCTwJFN+F__dQD8~n3QX8Wj zABD+CKR`J?43l~v<@h*E>OGX>12L(0QI3zqr2dL>d?+UM4$ASdnAF=S#|L9lZ=oC? zjY-WyIX)bddK2aNcueXIl;Z<3shKFpM`ThnP>v7DWGow@93PX(pEXgA56Yw(D91-- zQgxK$!!oHF%JFfTR2Aj;z)Y%wa(rYaRYo~JG?OZ!93PuW6;bBFnNvWS2WL(mWgeV4 z!zlCM%*mn5gEJ?KG7rw249Yw>bJ8gD;LJ&(%!4!MFDUci%y|vv_~1-lZ3yM~=uGNW zl;guQsYg+ckI$rjjdFZ|CiN?n<0CYwS5S@*(WG8RIX*^{dI{zDAWiB;l;fi`sTWX= z57VTcM>#%Dlln8t@qwDub13sj&G{3`@sXPR*|R9ehidXJ8H4f|)+#8k!de;Sm02sH zyb^0glviY}fbt5gOGZ!mOuJUWoM+$_uidM0o+$?@^wg^#scEv3`g0ysXDj zo`>~Ylm}Ulp&YS(gYtl_P(Fi6{@HYt`&rXa?qfZSvOQLdoS&oI!#{fn<&gC=5ta2I z%7*m-$^q+slzrBHD0{4XQFd8BMcE!XM9w`ZC-`S~qjVwbE|e}{-HFoqtUFLTk99jr z=dx}?=^WOrD4or^1*NlCH=}eW>n4=WVBLt)>8u-2Qvc3GN&PzmCH3!gl+?e|P*VR+ zMM?cT1tsrhhvu0@IdIoF^>|D3B)qJPd+DA7OXN|flIa|KHD&$%2W`sZAR zlKQtaO6uQID5-x-qD23&1WNQz&bgQ99~MK2{$Wv+=pPnAiT=q9SE7Gd2qpR#u7wi) z3)e)6{)KCxME}CoQKEn0YADgaa8;D(UpNLO_3tMrsehNEr2buklKS^!l+?c;p+x_j zi&0YlrlO?&U4)YQcOgpZ-vubCf9Ip5{+)-C`gbl$>fbpisefmqr2d_SlKOWnO6uPf zl+?dtP*VRUqon>FjgtCz6iVvfktnHuN1&ws9gdRvcNj|Q-=Qd}e}|x?{vC{x`gagY z>feDVsehADQvVJ>N&TCMlKQtlO6uPPl+?fdP*VT)MM?eJ2PO4yJWBM>*&8ML=j??N z{d4w2iT*j`P@;d%9w^a2XLpq7pR*fE^v~H9CHm*=f)f36c1DT*IXj_5|D3TX(LZNL zl<1$c14{JI*&ZeO=WK_P`nN4g>fbgfsekfrQvX&#N&Ql+?eiP*VT4L`nVI z0wwitbClG-%}`SRHbqJO+XN;0=WL9U`nM5E^bZT7ME|e=O7su&qeTDYx>kw)VP2Hz zALc=c{$UU$`iBT5`X|SeCHf~neOglgHbhDN+W;l?Z+#Tizx7a5|JFrO{aXh`^>1wy z)xWh+RR7jQQT0ZO)xRZBRR0!7QT7O%zBK>ocDAGTtA4U4-^r1-q zoL&^^pVNaP{c}PT>7N4>>7QdzRR01L)juCa_0L05{gdlg>YrS{Qvc-o75#&Zfc`;7 zK>y?lYLWgyMnL}{BcOkf5zs%#2bIMf#U`8%6q;cnd}Pmzaej{Y$)wBK=Fefg=4& z%tVp?C1#*V{}QjGNdFQeDAK<~7e)G)=%7gd5^WUeU!sK~{Yx}aq<@J9iu5m0|Ka=p z55NEaKl1y3jgEK`YIMXKK#h)gNz~|w*N++<@%m7sBVI3Rbj0gHjgELBYIMW{YIMXi zsL>HGK#h)gK5BHt^H8HBo{JhC@f_6Xh?hW(j=29qjgGiqqee&EnW)hbcLr*7#Fd{< zp(E}HYIMZyqDDvD4r+A7{R%ZY;(m!59dW-vjgGjVqee&Ef1*Z5+|N*>BkrfD(Gm9( z)aZ!&57g+0`!Q;C1V^DpM{p!+bVPnerbb6_IBIkRhoMGCa42d^+ixZ~1hu7D2cxzm z>mbyYU>%6s;QCpDp5o!yt{)XE8tPfF} zkM#j+^RnJYZ64Nps135-MJ;0e6}17@JE$dDZ==@FdJDBa)-2R|S#P4&!+Ha?&{nv& z{9F9D2{n&ZM9pOtP;*#$)Do;=R4-)ZP`!YaMfH4E2G#ReX;jZ; zrBFSG^%qpnX1#{$S*#&c&t$!d>KUw8P(7XXGODMsUPAR$){Cf~!umC;C$oNq>Pf6$ zqIx3h1yoO9J&)?~tUsfA9P2q$k7fM{)hVoJQ9XwBM^q=XoK?2| zQQh5ExCg4c@z18Ax-08pRCi(h9Mzp!523mf>u0FaKledY>7V-ms`SsjA65G2-iIpv zbMHl!{<%LzmHxT+pi2MTyHTZo?p>(TKle^l>7RQCs`Ssj9aZ}0-i9jub8khJ{<*iH zO8?xOQC0sgLRI~{5LNZ>0#wz%n^0B%ZbVi6y8%`8?|M|#zw1y{|E@(<{ksNL_3vs_ z)xWDyRsXI;mHx?3_EqU0Q|A7tOtKlx3&s`|GZs_NgasH%UvpsN1ujH>## z6RPwtl;_gFP@YTwLU}IzbFV;^{<)WGKlc(;>7V;!RMo#9 zp{o8}jH>!K6;=8d%J|g3b5K?P&PG-JI}26y?@UzHzcWx(|4v6${W}d+_3ufg?&sDC@5qW+CVMg2Ph74`3MRMfx2P*ML5MMeEP1Qqq~U{ut24n)W6+OQU7*DMg7|a75W#-eo_Bq zzo>t*U+AAJ`$hee{i6QKeo_Bqzo>s(prZb5j*9xX87k`Erl_cYo1mipZH$Wgw-GAp z--f8De;c5p{;iLS`nMh`>fgGksDJCAqW-Ooiu$(}D(c^wsHlJQqoV%Jhl=_)FDmNa z8mOp$tD~a+t%i#Fw<;>?-xyTXzg19C|5ipt{aXnY^>0N~)V~!_p?{D)ME@XrNd1#N zr2fesQvYNRseiJE)IZrn>YwZ(^-uPY`X_sc{)O@{NdH3l7gYb`Ur_y%e?j$6{sq;) zWbLa3;J3!CDAPaZ zbCl_y^E%4(&ly3P{yB0rnf^Kd{Nelm58wa)M}Gfr(h+|}H0g-H0-AKhUmi_5;xC6L z9r2e%laBbyph-vkrO~7#-q&c-5$`KB>4^6wnsmhb0!=#NeU2s_@&1V>9q~Rxla6?w zqDe>mrO>1!{*q|Y5q}9Z>4?8Lnsmfp3{5)XFN!7|@fSgpj`$0sNk{yJ(4-^&f@sna z+=eC{!L4Z05!`|%9l_0L&=K5(1|7kTXwVVdfCe3r--2n-5&4;t1|5<6Pc-OAcp4gX zBs>)jIuf3O1|11cMuU!oC!ukg{bmxLh{ma`6VNz?bvzm;vyMaKBwPLhXq?EJAB_`O z^PzD(YhE;tW6gucv8+Kfrm!M3j$sX;F`1P_<7iet8b`7E&^VISi^dVG9yAVTg=iec z0vd<13>t^90yGY0`Dh%(^3XVt<)Sf(<)Co@D}lyDTi(CW*xy!oEE*H|XMaOuKh}q6 z?92K9jeS_}qcNWK9vXYI-bG_C)?d-sll2Z7<5+K_u?OodGS5*iz^ifC-eDxk4}EnI`f`mC$bSdVoT z8tbyIL}MM+6=Oc4_Y4~J&-()!^v`=54fXFSG}ON*(NO<>kB0j9 z1RCn!@6b^H9!Ep{`z;#k-(zUdKkqka&_C}{H0YoAYc%Me_bW8$pZ7~N=%4osxd#sa zZjYcr|GepF&_C~bH0Ymq9UAn{yA}=l=S@R{{&^3hLI1p;qfY<4hft?~-p^2{f8K+r z(?9P4)ajphKkD?)yAO5x=iQ4s{gXTL)af67ggX7h#i-LiOhujk;Ud)OA1*|l{^0`D z=^xHVo&L#B@73ua&PAR6g-4-I|H30tr+?uQsMA01r>N6E?;h0YpLaLv^v}Bsb^7Ps zi8}rB?m(UXdAFlZ|Ge8!r+?n9sMA017S!pVcQfkr&$|hA`sdw|OOw_OALTdsqFF zy{rDo-c|o(@2Y>Ychx`HyXxOLsH=Zxqptp)g}VB8ChF?n8K|p&r=za^orb#lw=e4I z-#)0Tf8$YC|4v0+{W}G9_3vcV)xVQaSN~2#UHv-&b@lIf)YZS^P*?wsMP2=yg1Y*5 z4C?gHn~XaB^NvQH{(15qqJN&ehtxm$o2!5FH&_4UZ?68y-(3BZzq$G+e{=c=`J2-} z$ls0r$Yu!y)jxR;sekfZ^-rFw{>gLI zKY6bDcM$68-+`#Bf0IzBf8GJ8tA7(wSO4}$UHzMYy85>t>hv#^?Wup`P*?xfd&#tAE>~uKsO< zy85>@>gwNCsH=ZlqOSgJfx7y)IqK@)W~i%wo1&)vZGxKmw=rt!-(sk#e~Y4~{w;!< z`nM5k>feT_(LZkk)aakLK5F#OTMsq*=dFtx{qxpAjsAISqelO{wNRsf-kPY3~sqfw)OpQ~#DhP5oOMHT7>P)YQKvQB(hxKu!Hy95wnE?vI-Kw*YGD z-~6blfAgWH{>_V;`Zo`1>fhiG-~WI3{{KJn`+u8`1iPV4M}l3^rX#^FXw#8kXSC@^ zuoK#JBp8b}9SL?sn~nrKpiM`D?a`(q!FFiVkziZ2=}52*+H@q?8f`ifY=t%*3ARL= zjsz>BO-F(i(5557@@UhMU^%quNU#OkbR^guZ8{QchBh4uHbt9`$Qr_JIudM*HXR8z zLYs~R8=_4|f(_87Bfq^B5Me@>4@BkvQ0;14dFH& zku`+dbVPm&rAK1pS3vJ>#-I?dtKI|Xs^Rs1nsq13!}XjYaz7PWG#sH8mtA-UY#{R+N-hV zLwi-$yl9VM&4czTtUQ1c!0qK(|3G^=KH87=vaCL|mtpmy zy)>%_?WI^D+Do#4_7W_E_TsDn?ZsF=+KaM0v=_03=g?l5^(V9!Vm*uYf~-HHy#VVO zwC8920qyx%Poq6A>nXJ7VLgfVAnW&NN4CNX(H^iBxM(L?4%+>!1loPJWcA;6FY9Zx zdsttg9kRYe8>}zTHmuLl4p{$0+h=`-w#WJuZI|^ov>n!mXeU@7pmibZeY7rMy@%HM ztas5mkM&oy&SkxW);X-V(K?&;7FuVqW}$T^>rJ%IV7-CX>8zP(oyMAh)~T%5(K>}S zg4W5bE?V?YR{w3$KUw{^MgL^=-xmFo)qh*`PgehJ(LY)Jw?+T_Kchwe{O8c3e|`fk z`sdftqJMr3E&AtI(V~BT1ugpLm(iksehDr5=NHkUe|`Zi`se4-qJMY-E&3<-;%U)8 zJdPIq!*9`|e|QWn`iI}3MgQauxh?vKU!z6;dpNff1YsefmnMgRQM(V~C;Ptl@({yk{XKmTsD=%0TVTJ+Dq6D|7Z-+>nW^KVCs{`t3| zMgRO;(V~C;EoiBKve(o<*=y>b>^1dI_L}-9drke5y{7)jUQ_>Muc?2s*XWFhf1&Il`WMO`qJN?6A^I1}9-@Dt>>>IW${texZbnP}y9q7z??$xLzZ=j}|E@<% z{ksk=_3v7=)W2)cRR69^>7Tz1n)J`#8cp?Y zD>T)=Ezwl}wm?(;+Ye3kZ(lUkzkSeD|Hh-K{_TyX`nMOF>ffGds(<6qRR8usQ~lc= zP5OuX(WHO44^8@qd(otS_$iw75BH!+|8O^&^bdETN&j#sn)FY8|G7#3a66jxFFXTH z`WK##ruw%Vn(E)KXsUm^psD`tjHddx6PoJZSTxnY9nn<(c0g18+a68zZ#y*AzfI6o z|29Tb{o4pl^>0Ho)xQnURR7jTQ~g^HP4#bGG}XU#&{Y4{MpOM;3r+QJO*GZNHPBT5 zR!39)TMbS1Z&ftazcFa4f2*LW{;iCr`nS>#-~WI3{{KJn`~L_Xk@b;A=!mS3G(tyY zeWVdOVh+U!9WjSsgpQblF+xYoK^UPU=0J?l5il=S&ZdiWKmWEBa7IQ6_7?2 zW_^v3g;-x>2_1{mpKt&fqAwH`*mS{EaRwGKuC*4h~HS!-d$W37e}m$fQJ z9M%|&Bv`AUdm(FObT447gzovQ712G9wF0{5vX)2p9M*E^p3Pbo-LqKBpnE23X>`wE zErssstR>MsjkN^2r`nR0M!Ki4zCib6*5~M+#QGW0;?C@{a8Kd?#l|%-G>Eq z$FmH&d$R&`_hR|z?#c4d9mjIf-Gk+zyE`j^?ryeZ6{GI1tgq4Ch4mG>JKK^~jJi9q z{)X;Y)`#fs$oc@?9a!(9yFKeYbm^b0V$`L7a*x|C{fqAxL;qwIqb~iERgAjyPgXJN z(mz?ns7wE36{9ZwlU0nm^iS3)>e4@1r>IN+WSyce{gZWyy7VuQcLe>Db&9(5Pu3~w z(mz?Js7wE3ouV%N3*_%c|74w_F8z~rin{bq)+y@JKUt@!OaFqm(4~LDEOhB#@Fu$S zFL(o8`WMVZm;MDa(4~LD>*&(IU<6(I7j)63e?bRb`WLj(rGG&SUHTU^(WQSu16}$T z)X}AX!Jp8jf5Efp(!b!3=+eKShA#aJs_4?cpn@*_3(Dxyzo3LJ{R@id(!Zd9F8vGg z=+eJn7+v}o>$!bDf`UlxB^bfLM=pSUi&_B5&a+m&zbY1!<_ZjNa zKgfQef8q7$(!cOJbm?DsExPnCyarwR7ha7n{R^__(!U^sF8vGA=+M6)g%14-{(=tu z3tmHq{slwm(7)hSbm(933Oe*Jco`k~7rcZH{R>`1hyDdGphN$H=h2~m!JpBgf5CI; z(7)g*bm(93Bs%mj_&qxGFL(kS`WO5T9r_nMjt>0`ev1zM3m!v<{sq55hyDeRqC@|J zU!z0+f?uIS|AJqlL;r$bphN$HN6?{v!E|)!UoZ_F`WHNm4*d&$jt>0`u0n_Y1y`a& z|AH&fp?|?c=+M95XXwzs;6ZfgU+@4r^e?y{9r_pChYtM5GhP6Zge`-cIcn{98ZV-$rbGm{X-2M`X|3F(xHFybJHF5uZ)iRS3-yW zh4Qzgf1&&>>0c;+OZpdHjt>0`FGGj^1$UuC|AITwp?|?0=+M95c68`pa2q=6->vAV zf488c{@sj@`gapL>fep%sDC%0qyAlwj{0{UI_lrG=%|0!prig>jgI|1LsD{ksqy_3r|7)W7r5QUA_ENBuh&9rf=Vbkx7I(NX`- zLPz~O6CL&M40P1L)6r4?PD4liI~5)EZz4MC-~Q;Re-qGA|Mo*i{W}F6_3vbK)W4I^ zQU6XvNBuhi9rf>cbkx7&&{6-6MMwRcf{yxk3_9vx5gqlffR6f?M@Rh|Mo0b2p`-p~ z(NX_0=%{~UllqrJNB#SY2x#Zp@F(b~fATM={>i_f`X~Q_^e>oE1Ml%}@~-eM^3M2wcK<)Qf9V9dOWL5@!A$GO zp!~M{OzX&?{099@>&T$|R{c!t$e{eD{Y>k~p#1jzOzX&?w+LohM+Ut`G1EFS=q-ks z){#MPJZ4%)2EBbS(>gNf?TeY#kwN+C)0x(hLHUW)nbwg(`6<r(jtqKVV}^BP(BA?xtRsW|mY8838T7Zp4C~0CoC%&`9T}9f!!xWSgL1}rhIM36 zuAa=Wjtu%|V3wUvk|u>&c0Ng(G-lcPBxy33W#^Nm$zqnBPm(5wS#~~2nqkbc^NHNa z8MEwsk~9U(vhzvO6fw)rCrMMnEIXehO&PQ7e3CR3%(C-I(o`|a&L>Gz!z??WBuyQ& z?0k|8SHLVgpCrQ-G0V;;$?#sxvhztYyg$MFp$-NUG2<}1$K|MK#-Xe$G2;-{RhV%w z>yMam5bIgYIFR)x%$O8cGJF6t4q)Af853DQ#f<$~_h7~Z*4>z~AL}m6*q3!DX6(bd z12e|6ZpVzhS+`-vUaVU&V^7vCm|>5jlJX6DhCPl-$|}J#>~U05zPrt^$5Bc7?l!|7 zM$OA?Z>guRbs z6cH3u5OKjEDj+yVKoJplGbe%~A}$~}XAS~P2yEu*tF)Hsm!dm&1bRBN#M(LVm=?3XK%o2Y2OiMT$Gc4f@ z9ct-1={m&H$E9n!rH@J1G)ryLb+Dz?(shufYo+TzOCOc411#mGYky0zbWOE%jdbm2 z>1yekV(BXBnr!Jx>6&Ee3hA0?>2m3sVCgdH8gFTpbd9rgsdTkkxx@yt~rHaa4$RSGqWk3i0kr7spW{-d*Xk?H=#0blG+vERinT?t=@Y z%eMRAeCe|79&dGY*>;b&1G;Rx4;D+8ZTG<<>9Xw}EAqQ+yT{7zF5B+0vb)Q+d#vp4 zvh5zLsk>~u$12(`+wQT7wyU?@pCw(r?S77Q^|t#nrK`8ypCMh;zYr@HyQqI5RxEZ= z|3a)-?4tf*FK+3g{)O0iql@|%2B%0D^)C!gmM-dF7@Q0 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%0Arl6t~d>hvEw5Zth1-dRcJYM&g z`{T@3aDLdYlt)GND}gV>ekHlM*RKSgk>ci_zY=&#iko}=O5is!%aKO~0`QcU16(O) zIr1RYD$6mg6}&4&OXeAYS*_q`LAY%obZ>rdsYorncI9$rWEO7Qwu{Ay!uSBki#1MO zc`!;zD8D3Ee$WboBj#1Sc6Dm*k_A`s+b?O{$nSnpEBIxsE%WYPy*gC~#rfT#IJ^0@ zSHVkTkC|7xVs)x^(c^NN>pcBFq+DN9S`_sU>xwBO}4`B0_%dbLJ`BG$}whezJpB% zFG$_$6ps=ggyf>cvo)=-7ZIG73WRn`k5vmT&VR~b>q~zoR@ban*r;GVk^&Ju=waSH z5;iYb7t1T3QuIjJ&+snp-6QAF;$YzO?hbv-qer&FrU&bhV(C;;?vbsq2f}(JEh_ev zI%pq0GQ{@bgJec4?2s@6f1lVu@O=aie5OA}ZZf`z7KX_Za&a$<4SO+)n|oSp*qu?_ z+{VP}U~4vIj%p{}5>2RlAqzZbNrWaeQ5hz+V; z`F%z)s9;lwwWwU))6By@k#}+LK{b{Zhe4Hhcg3I@LrcRFL@ezwsA^hA)1qK>Xi?OR zU<(Qwo!ZuN3WWI~4_LjrqVQ-;w!$_T>mEDBmaSBp#%ZmvJH{R;4*~WBR zYK2WWHs9oxO%Fj{h3!9P!t&fI)q0{x{Qr|te3svZ&Yzv{Iqz_8a3~Gm`x39Oy zTD{iStR`!zH7e2_`BLPO$YOfpANc}#kSrkQn)}SbbN=&B6*T4=;WHNh-;IN(PC)=! zeeu)Px^eK-sd&xYn);$aK;1Za>Qqb*gM+6|MXTmk)fbJL>BhlRr(8V@4xT#Y=wWd1 z)G1pJgM+6|=>?E=QoRg5MEt4dMepXqo;-f$WG}!4i26=sTY&pjf1C7>cymY{>(!23Nb|>{>(!23NX(!{=^J*HZi+!8W?cjb8)5F*p zqv=vu7^CS@L@-9vr63ri=~9>&qv=wFF-Fs+FffMbwRH$%Og&5xW8gElnuXQHf}Xnr z7-K*{_QK+G7CtELWC#ubtgB2Fb`Mfr_@K0tK^>Pb*+maZ8*(X5YBfO@J}2#jo=ee% z&q+I>=TdaxbJ9*st*V8nXZU8V&}opVE__bfi7A!yQ*$dTi(&8?uP5|eimnIHPkKVn zrRcgJWAt2#uH6`;=TdathcS9CMb|Ej(Q_%fc4Ca4OVPChWAt2#u6r>?&!y}73~dfohXTQ01wRo*B&v1RKu`Bjuk{$*d z&(jy^VX*N$Jy8#XjpykJdKhdxPmkBbVB>juoE`=n&(nGnNcY`nXrI=bK)Ub37`+Lk zdo#x9O(5NyFh*|z>E4JjS`$dBdjrO3u1Om)MsrQN9%D4ur0Xz7b4_|D#%Qid*J6z3 znsg1uXs$_DV~pmS^bU-P*HqTbuPXL&X!q?H6Vt=ohB48qdDR+I$*maU>S1od7)K9t zGsf6@n42(0&!yZMf<@Dj4|{u%P}UThq)eO zf;zuXvimx~47n7i^_t*XRLv<(mtq;lXu1?jF-Fs+Sb{N{F2yw%b72+aN3JZEA-Vf% zjG3&5S&T80^e~Gs<^ny;RTwi-53>+sCg@=nV9aZ@6!B zSGiN2lg=-kr=9h1`hV2!gvkDP+BexVtkc%7;QRc|R-F}%q$6LAyd!c)WF~x*|4Z@_ zvXxvxZ1ca(m&`rp4d#q+HvFsbhr(OJmxbd-r}3ikxUtfh8v0wPE%aRIuF%E7Oz`F4 zM}nJ!)q&H2*1+?Doq_p*^GkYxX5PPPZ7d!SqGu0 z@X2a(Ww!$AcK2JP3sRNFX(ZfK1r81`I z;x-nL2T`hdpxjBjEFvd&D6KUHd#^UnecasZC z;hAkLCQs%dhi6u_v3NZAiRo?8PYnH48Gk>sjYZ|bV3W9bevZ?|!t!9S$;CZFG}~BY zp6AWILNwc0Jf7#xJwi0whGOt!DypFRHWq^ipX107e$p@fK^HvOICOwHSVb0!CpW(w zZ8@!t1>ix^M}^)35sT87HEk^T4tk4Nlpc022lKYE=sV~wd4;`#dD~djox~woB?t4i zv1mK^vPQbCcQ9{78w<6A?nMEpdx0_FXJ?DXfPY!j#^UXu2jtbFhyZS5pRqs>kc)eD zFZLaa=gmF47yFdO^X6XNi+#-k_BfA9h5DO~HufzGbT1jA>R#-V7Wwz`>R#+~7AX3N z(7lonUY!5oRvY`41-e&WQSa`>zGQ*!B^Q>B5&Mos=HS)6*!L^Yy`D|xjjOi}A@ zS{(X{T->9twBDz@xmRCl-KD&_+*gvVJ85Y!MR`RwxDQ7}b$w^etq zyD0#=7X_g1Ra3Bg-9nI5NWL`C1ee%x1qSEK>a-UpFi$b5w zE9%uJ>H2?qWJgK-xA9NLx5clFyRmfa^Rb6wSH(s}Uypt_`X2ZKAQcU}e{jFxzQtYS zmOF32HvsQ-Zg!^G8M_U#|2+s__K&g-SYNf8tsAZBkyDYMN1lUQp8a>W1*%mn4 z0%u#`Yzv%ifx#A--nxdmC*TF=xhI~BtkvFLkJm{mchI8X1?SyX3*Z-pj^+;z1K?hUqR<~YFn-msVc})t-e(y!rwARIg z<{%Ftua{=DE}}(Y5%hq#hWAe!576y|f7nb%2TNe&;$SW%!7&Nl#c@nACOKDO0+!=V^sQN&EX6q#s z13y{bxij!~*5g=$iq?w~>z2VLW>UZvJ+_m$z6%TIR_26wQHm`5I zd-J-x=WSZMW9_2Ktx}gwj*cMl@7F52nmTCgl^@UhNbcl+zpz@WqR1>hi60;ti*RKIEeCUkWLj;xI ztcOX^nt=5cg;)zm<%p~Wm9MO&nt=7?n00wxTSJ$sfm5>@m>Vjx7F52nmTCglmla|S zkEvoUsC;ED)dZ|B#jMNd+%jw`QvevAfD5SnWG#}QH392O3b9VASqmy(SxYqm>x&Dp zPC_(ddDEWi8dzlzOU;vbMlyqJGFok(qETYyp+8 zqy-YRCLmo~fVA))QY0;?d?hW_1f**UkQU-NMACxFSJF~VK)M=}9w9P=?lin|DxmU} zv_N98dsG!54c$paT2T2)TB-?Jy0QRi=uRrqg34FYQcX=$pQ;!lO;=nN^Z|4_sj#_K zK=pT#F1+9ps%D*H>Qku#RE0A-MXG|z2ddKjp;eOws6yPq@b-^LRZ#grRk}Z2|4*T28o{ar1_Hyj0*qYeP=!xi$qvH90;`jgGwBKf5XOFQC!khoc{n`>Zd*8Dy zaJB``w!qmIINJheTi|R9{NL6Bsh)}Go6U^gH|aeSFh=j2^q%n;qxVgE&p3?H`zF0- zEXG_|QBVI0pAMAj8G|vC^)RC`W|AJJ9Ahrf!;He1iF%kajG3T^8Hq9D^)UF@(abnK z3_f-=qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@ zqxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxVgE4?cD@qxDUC zss|rCn$bJvrUxH8nu%A}RW7JpP|WV&V@ESFtz*f0@Uf$rsMaZKJ^0wsjH`#i$Bt$k zJq$i}G-K;v==y&|$@@y;OJg639*9=CP0p{K(e@@d(?1YdN9mrrxV*pl1A})PRv#@^I%GIkDFIfVSAwww{=-2uMRDajr$HOBDg<8w+rT-({GX*v$l$pPZ$Nfb*&XoZ)v-aTZj5a+WFr z&Nm>=c3$7eB{q}$hM@A3vs4jqURi*1E?i6IEU5hCEL8-YR}|n3XPEF1GnuoX@{_Yv z5pZ5!fHQ>ZsW=NNKRHVk0q5%ra0WZ0;w-5Amvs4jqzP12o zurn&og33?MQbkR3o?1pZ(|7*hBhi<3f{QfxdPyFFxi?i*Z1eBMkDd%FiWy*rePs&n7K=~R(Id2YxxccEkvBW+jsQjcXRRol;R#VO${vo%r zpz@QlR1r{KtfmYvu2ropsQjcXRRok5sVT!~RZ$jHeo~ey0?JpZDZ^-0Q5IBwQkE(L z$_v$$VYI3!3o1V;OBM0;{}UzgC9!9tUD2fbu=BEWzP-l!eB?xAK6%polQ}KC%lLue zhHeUeGH@htX~`3QEdOB|zLz%L;IhAzM#2hn+ThW6vK;^~grAy6RerXeR1t9AUVt;W z8pFiI#}QP1a+WFr&f5xb23JGHSy1`OS*i#)Z$+HXllulg2hp={46FR)41Gha2sqzU zfHV9q!{w#EF|6{Fv%rB?1e~`N;0(XZFfoy{pz@QmR1t8#8*x52uW!Kem7jVk_YFbi zCugZ5;CxpB&aiw{aTZj5a+WFr&YKHxhUKe@v!L>mvs4jq-c*1yj9C?DLFFfBsUqOK zu>fZnvntMl%1_QxMZkGO0nRXHRh$KtpPZ$NfO8|_d`{j{3Ci;?D`mSOsC?!;%z;(} zoYy1HahWs!;?$G#u*zr7Vnx7t9pW6z;|yb#e_1PY7F2$6mMQ|ycNX9bV^+mkQ2EJO zst7o*Ex;MZtctUs@{_Yv5pZ5pfHMp<6=y-^CugZ5;Jg}fj>`R+A7<^@pNCa`a)$ma zRs@{yD8L!|(r|gvuM<>$a+WFr&bJrf41Gz(Sy1`OS*i#)-&TM#^d%K%LFFfBsUp7q ze|mWR{|KD!Khj=reJL^!xrRIo@Bb^pj~TBRqe6|rF9kAz#U)SsvHlnC*_3>mpoV0h z#iGps_|BMrU@8wXLFH#dN)-WTvjFGZ_oy;wLFFfBsUqMUMx5Cvv8bJMXHv+V1(lzi zrHX*FQGhdit;|0yl{pJ4KRHVk0q0Nw&bd#IWzK@iPtH>?OQqF_#nCNGvsB6F@ z@`H$F%7V&I%2Gu@IiRKtBUVLOQ29w&st72Ts42sbqM|IQ{G=>Z1e@HCA00d%DJy)Wy*rePs&n7K=~mxWtc8ieOXZXNm;50C_kvCoI4;} zZe>B`CuON3p!|TEGR!=xRu)u#QkE(L%J-`&!_1?iEU5gXEL8-QcdIGG%%h?#sQjcX zRRn9i`zYnX_mqje_YLrfJVTh=nFW=foTZ9@^R5D%;Tct&1(lzirHX*_PQ>|qxt)1t zHP3b)R{6;p+F7g!IPWOH8J=;tyx=uKUL>UQle1J2U;jTjy#6or{{Pc~zXlpgo)p&V zXZZg#&3<|;Z9}^3xIGe~+iOebFJHEL-r`jd{V&9|6j1#`O}KR1`o`ji7Q$LY#)8U6#!@}Nc(j_a5Y-|w7F0emmg)h<aY|Q2EGM zst1<*qbTFSd174NJ~5m^o2*~4X!&Z{ehI37h;ot7Sfq-8a~a~yPP80e+R-%%Kd(^c zEU5hCEL8-YM;71=9>0pSpz@QmR1t6(T2soD(;0#{Bs+|RupPZ$Nfb)3;ID?<0;w-5A40cAvSy1`OS*i#)y9GFdol$WXRDN=nDgw?<0nT7&RGbBs zpPZ$NfU{kIGuRmwXF=sBXQ?9KY$4A1uYh69s$KyLDnB_(6#?f+0nX6>Rh$KtpPZ$N zqE2f`qU7Tx@nx}(M0=w(?pvL)_FdLDEF*F~dCq*ptP8*0_>D0>v?chhpcz;JML&Lq zm;4292QSFrR878)g8cyY$v0Y!Lkx!SDY8oS54CCG4FQ1ytp_N>nVL$<5Q3qiEU0{> zEY$;);cU$uW%lv(a8su0@;-u8sr;iXQW$JyIAc>uS@_mk*b_(zDjz9J^*}4nDL`5H z)LNu0sC=X>)dQ4g7oaSBX)RI~R6bIc>H*5L3Q&gVIN^g{)RzU7kCdf)fbz@&lp#1y zMOje!NLi`}C|^{7G8jb_WkKa5WvL#ZJfi?*Fp4V5g33qAQawO;SO6NQWjJ`QkLq0 zR=!}EawMO!F!hL(1(lDKrFww!!~&FssYj$NsC=X>)dQ3#6re0jJtAd6KOH7c874Au<+JJ~Ec-0mkFhjD>?FM8<;3N5)b;{QduPUg!S>BiE9TK>oj)@LP>m zV{GWI;5ULs;QEs13NF~ss1iCYJ86TyMTONr``TvMVNZg=7QU!ZseEiufdZ`uD6^9` z6qLbWt0)U9A1O=q0A+U4hJrE}Y!zie)dQ3vxn*v{ zBEK(#!B$ZgR6bIc>H*4-<5Ec(47Q50pz@KjR1Z*w1eZC=?D$Y*7GU`y9L1?p`AAuy zKEY$;)A%CTkGT3nyWkKa5WvL#Z4B0D{l);XxC<`hdDNFSLWyoEr zqzrakMOje!NLi`}C`0B-C1tSVD$0V&N6Jz?KpFB@Dk*~_&ISC zG6f!u9gMZdejEEm><6*0$37o>KK5+vy|K5&9*S*`ZHV0#TOL~!yF6AEn-QB38xeD3 zLC7iC52py0&ZSO;GtC+2obNz%jD5`R zv-jJ7uzzj;*#5TtMf=nCN9_08PuP#zyX?E{RrV6Q!LGAs+mr2b`yAV}*O*CjiaEwS z&y0iz!ha3F9_|ePF8oUPN8xXVUkZOR{GsrZ;pXte;T_>k;XA@B!&ir|4A+EbhA#-0 zg=1mEIAt6$dW=6oY{kpQ_l>U_FBl&;o-y8S>@glNwi@e=Ta4?Bg~p{ug)z+-XPj@? zMv3(|>nLPfY`1=E{lfZz^>yp>*7Mf0)_bkDSr1v;tqs;~)^cl+b-7h#&9Ej|BP`bn z!YPjZk*>%eBdw92M!p;Qa^$m-=ORx<-Whp3vOBURa%beG$g;@%$iyUhPK ze{KGU`Azc+=JVzU%y*kj=5F(DbB%d}d9`^(=*`gUp^ngRLq89FKlGK*XG0$iy+70v zdN_1%XhZ1M&~>2&p^HOvLX$(ILa|UNcp`WxxIg&&;48r&2EQJBad1nCG(A4gCdM+LW@k%cCf_McNUkCAWF1`WcWnAn7@lq}x0`U?q_Jepa7Y~Ctmy1V0 ztmERJL9FHCQ4njm_!khXx%gKQtGM_kh?QJC24V#lkAs-v;t3FwTs#Tl94?*$aW)rE zgE)(ee*PdD1m*$b|d@d~@S=RQ%xr$_2(-UVg$+DIw&NU><8lE^yNtU%cajqp<*6hT& zo@8086K4gaqc8p z*4o5rBw5zj#Mwl$tgVT2H_5W5CeBupWi3sddr6ixG;wy4ENf@t+()vknTc~h$+A{< zohwL|HL~k8kSuFs*O^bUtchJ`A<429cAZ5e%Np2qt|nR5zOJ)`WLfjN&N7l^t?N41 zk?dsJey+2eWG8WHCCOgErBx(5kxMs`>;x{|LbBtzbSue@2DK(b|A+DNh^xwM&N!Ol}Icady@OIt|xd@kKXvZY+wMzZH|X*UkxIA*pc=%AhM?&X)ghhJ?=<* zDTwTON7~CkWDh*jz7|CG#3SwNKxB_R(!L%<_RJ&gaZ5Ke?Yv&`)-A2}aj_T!J36i%ZaBc5(?u+zu{5-?^7dF!r`{33|~sF2N|= z%B9^Tdk>djJZ|CA10;Jlm%uvR#ifTxb~BgWLb98<^f1Y8}_0nf@E*y(mP1@ z7B0P$WN+ruyGZsXF1?#%Z{*T@NOl#M-b=DKaOq!2b|sgdB-s^QdLPLy=hFL0_IfV; zE6HBRrKd>tS}r|Jvdg&i49PC#(g#R(374KF*=xA;L6W_iNe;B%VlF}ZE#lI{WPsVY zg#95hz-(N?{xBI}HZEa*gbXknm#{xd2AGXY*w2vxX5$j}$H)M)015l!WPllfg#8IJ zz{Y>Vex796XmOnf$N(Gt3Hy^|fDQhH{V6iQ#(u*7G#Ow+KVg4{46u=(us=%%*uYQN zpCbco+$Zc8$N(Gm3HwDdz(#$-{yZ6AgFaz@fef%QpRivd18m4A?0+W%Y{Vz*FOmT^ z;1l+j$N(Gf3H!@rfDQMA{S`96Mtj2kDj8sdJz;;13^4Wy`|D(Y4fTZm4Klz+dcyuD z8DIlFVSkGZuyLNSzfA_%Fi+UuAp>lbC+zQnM@8E?VSkSdurZ#nzfT6(5Kq{9$p9PS z3Ht|RfDQ13{X;Uq#&^R05gA~^J7NC^8DOJ3VgHz9*yv8!KOq@5x)b(KNrsK?g#9y; zVWT@?zf3Z0bSLbelMEZ(3Hui$!$x<){w2w<(VehgAsIHh6ZWr2hK=ro{cDn8qdQ^0 zN-}J8C+t>|VWT@?w~-7R-3j|QB*R8`!v0T^VWT@?|CVIf=uX)GMKWx3C+y#m3>)1E z`}ZWnMt8#g1Ie(_ov{C#WZ39V*ncD$Ho6n`|BwtD-3j|oB*R8`!rn(RY;-5=c9LPE zJ7IT_3>)1EyOU(t=uX&al3}AeVecmyHo6n`Yb3))cf#%>88*5Tb~nke(Veh+NQRB> zgnfWy*yv8!2T6vF?u6Y-GHi4w?AJ+#jqZf~2Fb9|ov`~zhK=roeTZb(=uX)EB*R8` z!ahtgY;-5=BP7E{cf$TN$*|F#u#b`q8{G-}FC@c8cf$TF$*|F#u-_yZHo6n`F_K}U zJ7FIu88*5T_6d?RVWT@?pC%bLx)b)_NaiZu|1u=AkV^w3vw%xk zl9|sWr-WqYaVbDD4O|M6Og)!EBy%N~43fEmOJS0^oJ%IjT*f6rGM92GLNb?d$s(DH zxnz^fTrN2zQ^zHjWNNt-C7Bv7#Ym=_OL3B^;?g-JQ^}=sNv48J=aEc`OQj@}X?VmG&WVrovCXx)df6fIYGm+OZiDbC_b0(7vw|~xsB*X2WGlgWh{d1<0 z47Y#IG?L-=&zVj#-2OQ;NQT=#=OU8f_RpC~GTi<-vq*;9KW8?{aQo-XAsKG}oFvI` z`{$%chTA`<;-CKgf9|wRc>m8%_eQVmU;{=tSy-j=aYIF*K)dQ4sX)S>=J0n|c<>B+GrB)tR`A8XB zS*!;r=dxOQP=-ewE-z9RR6bIc>H*5Rq?SOLo$5W@%5VUmcyhB!QPY^R6bIc z>H*3um!)^`DV=&0VUeQBKgx1FK$+#T^rlRw9tCAl z)dQ5TMpH?Ch%Zb%D$0V&N6Jz?|Mcts+-aL&&sbJKbCi<3?^GeSy1^%S*iyp=Z@O+Xk{?jD$0V&N6Jz?KslG; z5-77QhN#1WF%h!ssZ>5v7AVkqfO0Our3Ym&CMwE;%16plJwQ2^-_nCJxY8=hg33qA zQawO9m)_EYGPu$z%7V&A%2GW*IhWnigEAOJ6=gx?BW0-`pqxu?=|LHcqKdMh@{zJs z4^YnKw)CJ3Mo~psQ29t%ss||Fg{G2xBL_xNMOje!NLi`}DCaU;LM!LJV@N?qQfwuQ zD*q_U^#J8uVoMLo(2-P>1(lDKrFww!M$|F#TNyf%in5^ck+M_|P|l^b^k`-1NGi&L z%16plJwQ2^)zX79tV~su1(lDKrFwvJE~%wVnJxvfm(vnjIiE6gBq5;*dKy9HBW0-`pqxu-=|LGfl8UmR@{zJs4^Yl! zwDh119Z5x5Q29t%ss||N5?Xpth9rP0%7V&A%2GW*ndP$_e4UWjm%+(XQ5IGHQI_ig z$}FFyf-)rFQ?xRiONUfGQkLog$}FFyf-)Qruc9ode55SZ15O*uXQ`kJr#!1D3o0Ke zOZ5O{md{c_84ib6Q5IA_QkLog$}FFyg0gz{gCpzE)A&ePss|{ue3lBz!qg*7*hxX< zBW0-`pv>}FDkuw6k4RZi`AAu+2Pm_AmI}(k)FVH*3upXDIs{P$(B_*T7q z5>!4?mg)h@ET5%}FDk#I^TSZw= z`AAu+hp+!%@IL?VI>-RfXI>nB!uXvrIkY4AgJ3LhTgeM&^oT$0n>EdThMl=Ncp4p(>SsZJQD((0YI|J95*TF_;wdsERA?ud%Apz@Kj zR1Z+DL>^H-WpGDSlm(TKl%;xrGR|z7PZ``16=gx?BW0-`SdXyGmV@h&k%GZU!H-f| zztGEIh${aW%k=jB0rsiik#@K9BZ1(lDCrFwud%W3J&7#vg; zV?pI3W2qisJcG_5-i*N)Q85-&J~Ec-0mdw&r8i@6MO2Ihm5+?2dVn!YXz9%uJP{RR zLFFT3sUBcFRoyGpa~_Rb7=9QZ8B6s5W0ua+yN!hjN0`8qg33q6Qa!+!WwZ2VEKE2e zV?pI3W2qis%#v9SG8W%3q@dd?cE3fHe~jgNfbk^MkMkHqw^uP1R6a76>H)?qm8EwZ zL$_Bk7F0emmg=GF|B)r@^WXp93+w;V$R_eVa-O*{{N3=m#)i;$Lgxe<1K$qBq4@vm zU(?iQaz}hD9X$DL#k_@!SI=9#YRPKw9K>V9RH}cdSyt>?yJJ`5j@w``7P>!B%^mGA zM0H{PvX!f^S$5S*_6YAy*TP-VFe#YYoz zYN=FbifWPdzI=;Q7v?Tpqfi=IYd=_G=Zv0 zb*88mx<72l;-r@Osng-?f*jRKfT$K}0js#sl_tY5JxM-{zn5>)>X)ur3kH}2RvZ}aZWTQ;xVx|6!Eh3Wyy zIG1HU<&>JTpz@KjR1Z+bxh%&@tz0n|T6xJ(hY+3~seGgiYyV*igB=6svdpIpEAQd* z;twXMe55SZ1Fej6S?0gFf&F9En;SvpBW0-`pp0`_=2M2{uQ z?OPRPLFFT5sUBGW2Li^MC4Wy=H?zu|ZjLicAp>3}d^CI@{HJhR_^09TgufX66y(4A zm+;%d4~Dmf*M)BiFAX<@Ya#pH#PEo)6D~2{jK3LwJ>C)jZT#o)@5jFq|7`rDkZrIf z{&4)>_=fnc@$2FX;upu~K(4`2@mM?*I}tk++aLRV?3LILA=BWCv5&`|j=eMXSZr5p zbL@`T3dl2fS*#*9H8v)8Zp@6Hjvk42Lzcl;qd$&*EBaFO-=fb(-xJ*vy&rN6u8ppW zUK71CS{2&_f`GvC=atnUWdCvJ)=LzQ#XNR-Vxy`vAG7DbfB%KSLawqN> z_DQ?nehu;p{>uK5{SEu`_9yIT?04CZ+xJ0M!PWLkd$E1FU1?9V$J*!F1Ty^n+3KpAEhz zxQA~dk)}N?bxpYo3BdNS+%@GcBmmpPlGl{GkN|8C%U)CNLLRO?EPYM63wgNqu>3XU zF680b!xGq(yO4)#56fUv?m`}}JuHPyxeJ-G_OKi_db?mhw{%VbmTHiO7g*_6Bg0wT+0Q|>+qB1>jd?!FI1md&Qz z{RoIGolUv>Q4m=^n{xL#5LrT-a`!VJvWzz6?q@+{DQ(K#&w*l z?*0lymffb@{WXXzy-m6MDu^t>n?*1o;EW=H?`&$rMikouxzd&R;Zpz&b z5LuF&a<>!2<(zsNM3&~J+}#f%%X3riz6K&obW`s3fXFi4l)DE&WT|e-T}a2chvm8{ zcOf0)9+vE;+&uy!%XU-lLORAhEZt4H3+Wj5uzWY=E+kXj!xG+K#k)yU(_>uR0^*}w zyaz;Pe@m^cATs+~YHb6N+22wNjAIkCzoix!$0lZfOD!;tP0aq5T022x_P5m91tPP* zrPh5QGW%On$KM`&()~3?j3? zr52dtCT4$2tw%v*_P5k}3`AysORdL2WcIhzY66kj-%@K2h|K<$T5koB+22y@Z6GrH zTWY->L}q_WEimy-%>I^IEg&-cTWUQ4BD24x);mCC_P5k}Cy31cmRj!uk=fr;>)jwS z`&(+g2SjFnORe{U$n0;a1ye^8v%jSlOdUlqN4{VlaV03x%$rPi|`GW%Oa&-%<-EswQTCORbNA$n0;a^>GlH{VlaV0V1=%rPlKxGW%O<{TqnP z{+3#w1d-X_QtMM7GW%OxNPG1J zF4A5-o{O|skK-ck)nmCxd-WJD(q289i?mmlbCLGyQCy_Gx{QmoSC8Z(?bRc=NPBgH zi?mmt&qdm+OSwpU^?6*Rz4}}((q4TI7iq7KbCLGy7#C@;j&hOqYG!}S9NMdy{Vj87 zuV(hQ%%Q!S+21mU_G)H-%N*LPnf)zuXs>4Wx6Glvn%UnnhxTe_f6E-&tC{^Rb7-$- z_P5NTy_(tIGKcnRW`D~Z=+%!i`&;HfuYR1_-!cb!_2bO`mN}mXk=fre=L;Y*`&;I` z1R}G)WzN5Y$n0;K^Fuq)f6JV2fXM7`ne$B$nf)zuz6Bz)zh%z1L1gx~%=r$8%>I@+;D$cV>~ER#JrJ4w zEpxsPBD23`&R!6i{Vj8T03x%$WzG*lWcIhr`4NcB{{DaLeR-T*MYVtT?YngM?S(ZN zlCVRVHJO<#lMt3HBm@Xa$i@~3A%rAkB?|$<7PkZy^||0KsHmX0JXetQ`JTR~qBuQ! z+z|ICi~YTcDZ`Z8}{~aR7-tqHp!a{R3cdmwWBtqFS}a{R3c`yg`stqJ!)#)hsg1_Cj13N zj=weGFX{RJC9$u@^54&YFuy*3PX378&vFmvcIFo6YO@Ej-_E`#du?`1=3wU8%m;8k zJS}rn`19~f;jQ7k@c8t9ryoz>gS*(~)Iofa{=U@O)LHn|z;nsZCT~g3N*)aFw6^g{Q?`0D+g?n3vZ#0!Z>6K_l`NsM-0a=wMT z!!^#CPCDKm|73h?d|LeI*e^h_;$K6-^<&PAk@3V^u)#Ka@x^nOO`o=KCbqkmHMh;2 zwxGCOICJ^tIV-QkdwAzk{GH@x+_aHPhzLo3U)+;sr~9Th`h(ZT9@4@o8JP zE?=>F{mKnnXRq0`h3jZ)znv6MG%1#UwlZtu#;wIxG`8PHc=W2QsC@ho;fsUNzQYX1 zxx3|4G3KmXRT_l$TM3R4)~o|wK0+GsQvcjSX!MVUR?fSmrXFlAvG!n7`*u=7-)KrWfw%k#yxGe)TsP1+HxV9vBk|=|9SG0#TiUk~{0sp{ zW6RI*r)^$8XXEyjn~PO6w{ImK_?=b-bjnYt2Xso+Y%y1ZUMfF+h05Yho66N}Hdh0k z^25ae9j>OX{YFw5E|@{((Br6+}yTo+=RLFFr{ZNZf=>o zam&hs&FvdYOf)FwfMudJv~M64IFVG5Gr6&SJ)tpZ5^V?*W82pe9J5%$&9k_*eJyFg z^+=;)YASDKm0geLb3^+L);1VIUHckq8zvzzmZH(}k`uMIuQoG6uqeL?T4pqB`HGbX z>)Kb562@0FeB8uEGZ)R~F)Wp<>~SV++oE}M&o5#(ZdkQ#C7fX;fu%E; zqTF=^MU>m6cI9AEuC09qDUK70c*-*g;j!336B_#wSO(`lET}dj4d726yTHAxs73ON7V+}@^lM0+ws|KT{2cxF;%Lt2s(6DHQ zIm%y3cnpNZ8>9RZg3A`eye-Ptwl5|fOo=zD@o|EPkFD*C2#SFtXhn2^XO~|)Ee{+= zmoe=NN$F%^A5(7ftQn=J+nDximam(=e9h*AjqM9a0d3X@LBSAU8rm-*IA(%`o1)iz zt8qgFZfKupH7>(@bNgIE!$&nLt=9Z8w*6vKL5P93!k*2i&w!n?-2!k3^TxMlUVY zW)c+s{Cc&25aJ^iYUhy>`bH>Ortl2Hqi-bMIEAMZ98*}rZBw|peH!V&@1%}(p*FRm zn)2-p*665Q)65{j8E<3D#E#we3>~ z3y;vSas}AhekMWT5d^J>aPSCggllY{OiCDG&Au&QO(HnlS;9>LtIcZM7_cTE%d}@cmf4Kw;Mwqp;e)vUzbHH*{oC{t>362DOHW9i2%=oA9gNtM#o=?e=~k> ze06+sJP9K9zl!_+NU^oRITLR3F1U&E`kdWO#uPYvA`y~O#gv<5ON0f^obW46!Qxj1 z&YSQn2{-svfzzhZxXG^yoHvce4SrSNvi_r2;wd?iJ(oo>!dYm&D5H}P4p85jk*Wo6#7KHp~>k6Dxk2QhS`%wSG;|iQl z>xx*_zic;6;nHyhPOC;OTkr}mA6ww;da}-oHo8pfv-sMk0%zFcbq(6Rk_)u>35^9# zvm;G-;h3@CHWfI*8qG`3j6Km<-~?+lFI+SB*w_LmOE{YF1@qR}Ewu&Cm2fnvp*mV3 z7IP*P9qnJD9gS{A0X_?0Bu5F>+=sA701FNht9lQh@m~Up;6%{Fa~@Lqf=$WhJEXJ& zN{DDGDVyt%!i7*k&`}l4o&^KrcJ}DtK3;V_! z0K{gG6fj*h1#@gJ{{H{LSblNt)7gXBMVW`f*TRMA2UCAdEl55XycR6-Kkdi7#qOsQ z2NR2&hvKir7sejM>gj*@AAXc~=*y<~+1SVgx=>v`m-kE~ivF&jR#coJV5^$!gX*C# znu6*GqFVl)8FEwWL_BDk&QHD~iiV1+t?ClhLtiqLROw773stpf=&4Hk=+#4CFdd+( zj)FqfRy0&pqwIs~p)Z$$>T#+AP}3&B0cJ@DP>Y6&YS{s#eNa90#nJ()YSR>|wxXe; z8f70;msR{QpMPAXHm#gim1#w-E*A|IRa@0$A5^c_sj5vY^AW+STr^ZvZB;YX(f3|8 zaK;WCfX+u$TUOrDiYOW?rnag}OqXg*)rKidZAC-HG|K+Y(f3|i!IaJ|DmRScfBAkR zqG+g?+Nv(~=@nL{G;b_S)uN$iD($0BFV~o=L!dCV6%7^BDEpZFml0F?2oz=%pLAay z18Q0ME=L)DwP>iQ+N$Q^KjYp@b*gI96soqOp`sdPAHBMyf+~N$Q*B!LUQqOExoD`U z+Nv(~>SCR$+O#qsP_-2e71b#F=+#9PRQXGGO4BNCne|?+C>koNwyI0Lx=^R8G_8V< z-m4WwLq*kAb&2YN3aUqm^ii0-N6KC;@4$#&Ef)nqI#so4WxVLsa?wyxwN*{_i}(L`oA3WW6&wgI z@jvP9_vX8wNc<%+&-q0BrTE#gyQ^^Xzq9$?Ltk56mQ3>Uo{2BHU=9umRNl@W=rcpn z-_>WcmT%a)e9J9M)~s8%eAUX$eB6qS162ghhd#Gz;H*5%P&q3_)#NNH0_R%?eAB=g z+qdN#5S6o1R87vJA}s#+gR7-8gJ?lLdmi3p#`w?WA2uk9KU>k?MY&?{C(1r%{-N)z zV)1v12vXz5PrGPt@g-xlLJ1-jMMFh3%08$b`o8J_RV7kX@ELG~fm1LmiiV1+t!lCl zs)xR-3aTf|ULA*CE&j4a^lG_isHm#Fs@ezDZ3EM5fU4TGGG6p*xoD`U+Nv(~>edRX zCpn_)TBqUHNXBidapj_+qN?_)Y9GD2MW?DZt&A7FS}qzYsWQ*fThOZ( zUo9666;-uYRr~1G8+EE`)5>_!tL37hqH3$U)T^5+sPe&P<)+c|Ugaz{ThUNajk1qk z-DszZn|vEpwP@(6O8cO?L8q#Yg3_zDqM@Q1Wgk@6S5W0M*OXCE&s?(=4HeZW`=Gkc zPL+0fl;h#brqrULrz-7(>RO$uG72hHThUNajj|7_H&jp^rLF;JSGD|Rm6FKRqM@Q% z9yMtnRM*(4(kNJ{szpOjRoVyD)jCym6cnnqqM@Q1Wgk>mRZ!(8!0IR{Pk?PjLq#>p zKB!)Ar%Iz>p{f=QJymHxo0}eQc5we+c^==F^AF`el7ClzcmDSL=KSjXRrv+^^Ydrr zTk@mxqw+`Q{oMZCA9BCU?a58bHRVpp4bNqA@$9SF7qUOgc4xnveLDM&UGV|BW%b8ziex#hb_b-_@Wp-pXWmaac$jr~o z%$%7Sn>j6WTqd7!!+l{tP9EqDzaRd4_(=HK@MGb7!+XNlh1rNb%tC)R@$%shU(al}P?M`C{_gO&%AE$yWZ2@SG~`8_j~X0-t67! zZS!vMmU)Z33%ql@@m`&Gf_Jo+bpPtU;{FC_FBIJWbRT!W=zhxmkozz0o7^4BS%1y$ z>Fx+O@4AV7iQgxFk?2c&Kk@I0M-rb)d_3{K#65}ECAKHlC$3FgnwXQAmYA4mOq`q; zmIxCuXRq@+=Q*d#`Hu6H^JVAL&VA0iox7v{csD87`F%cN#B)bMJMO+s7coD}v4hC?% z2n>)GpDyCNH4yo9k$^=$UBqLNPZx1n5SBrqV^hY*Z^srNf&+hXo!!AqQ_#EM3==3iH@6rfshT5R+=vQZU`|& zV!&dOM32RQM3+UMM8^$bz+(fX<kL_}ILKq7}) zk3|l(E{hy$9oL5egjyINC`Ve~^&leBk^vGq)Osv(sC8N7Q0urJ3?S6P06{s@`k=V; zdx*4TfJ6?p9*Z1mT^2diqB$^tPzwVD$naKAk@MDK{?X;ZX6;aEg2w@L#@Xmhgz3K z4z-ROhXI6I7$7J|TKFhLL|QUH;w%#3t`KLE2!Dlm9*J;L7(l3n0lGMyF8Yas5D{r% zfJF|q9*Z1mT^2diI*EfYfKZ!)1TBuVe&RKVh_qyYL=LqciyUfQ7CF>9iPvBNp%w-R z%8}Mj{1qZ1Eg2w@L#@Xmhgz3K4z*6=uP}g63j+k@Nb4sKKt!Y^10-^&^;qOk>$1q9 z)=3PU2M$1q9)=9hq0|>P+Kv0gfe&S__h_qyYL=LqciyUfQ z7CF>9iI-sjp%w-R%8@pic^V=jExLn64z(_e#Zb#)G1Riiq1MSf4Ox;HXTuGwKSFa;6V39+u$Kthg)yX^sTO4ZnB8S>!=1CafQ0ueEq1I)QLv6q! zhgy$Cgj%xoBy1tpg4dH+y}yqxCNob!yoW@e#n+MOvdFz0u*faoJHI7HyG;P)oc>gM-1Fa-za)QR?uFcwxwq$*<2?O1?&d$5y(xQP_W1N0 z(-)wozl^4I%gy}jNe-tD;W zJkI?U?l9?$zta-`o%noWN8%#;U+fFkKMZ#9UsDJFRt-OS`JnztqT;=}@?lB%Y3|zM z?=u8m|HTfVQvt{oyq`=`7UruGjXC5JKpEEJ7HQr?(U6^o~JL34{mv*O`(S@WU|D@(^eLUXc( z?6~p+T2+(DHgydAu$V97or*`YWpXpuT|02< zWLpRS(hYqnsvB2+n5U_7!x}sIS8wn;p=tUdZCwZd@(sVsl5qW}r_CMwgE#!TOk!=n zF6-bQy&1dB`s=a|{^6Uk8q2TCnmYJ*Z_|coh+eeds^oG$CI)jbonH~J& zx5)<8if1x- zNTOb|Bk>RB;7AfK9f^M@hY^-oizBsm@Gs@?dpx01@eWkEEgZ31I$R3%@IIkr|7~MO zf^>}BEZ*19!5IaK;l0B9%CB7xB!>^6pcd? zopRd>TWy+yq}+*xEjF^zDHjW`Wgv^6^}YxGqZ|n#f1eL$xA<>?Gq9hJ^;k!Zsq2Y{E(aglI&$N|u$b6h0aeAWsb{Zcx|MXHz&Ie4-x>0Y&k|PB8K7JPQR>GxwH5T~vSp-mtHn>+qfzO>a8kg?X zT;L;Tk%y&mi+hbN@QJfHLqn>V-K)012hJjLNDb`_jrszgHw*U?XQavKRadx_#tH5v z!P32!l!jkoHTTMfwXsRDuf)=SO&8MlrEg5nNDoW>BK2tM&8e$XW0QYLKAU_Xd1G=$ z^4Q=v!B>N~;AwSp5cj+N&-gd{7y6^T-+NDZ@5DF$+VEt#1K*9?;!bss!t>&<;XMB< z5)IBl=LgOQo#jq#yg&YA{2lQn@#ACtsPO;y57YM0zlj~3X^`ALhB=|Wi4mFn8#_4B zz`ayOycbdN8=*so&`<2xO#LY8QD37dhjvextVEFc8hxPWNu*kI!|*m|pDJ!zV{B05F4b*!^i8NHrp?O02ihPnjzAzyYm;zn$Mpn7lo3$# zsdoqKI|ee7(2${{p@TCMd`f@~=PxyMaBec94KcNY(-UHNkFZB!`TTbM`)P*hVv6VL4b{Z!wJfWHu(*wDEN)EZSkAh4nEh_)G@jX z)OIW?%{{VSP7nwk`trK5V_|7l-*S>$iwKQ@m$t0~e<7)0;H8Q-_iH;YsDMTed~3&S zf+9?OME4PU7;5Y|pOi3{N$D`c#4LitTLj$TEi?5#?5`;9|Ruzgc5Jt4u;NF=u9x^47ME%ReETF1*fQPkj?#AEO8K;@MxiF+LHzR z2Y|z)C0yT=1@-}8F?bSd*^`CJjZiUmn{9I+I%nIev23qGB@Gpf=7$b*G@ZG?gOX8GJP3KZWXKgX-X$``FL<7?j}(vfk*;eQ2(R<`k3W;G6r#3+)O&`2|pfg4X1`jV87r!>1)#y(}~oxsrysw@a?};^2hiJ{TuN9 zdmT;=d?t8*uomyNAL;+Xf7E}AztnH`J+A|Ar*HOVcs1_t+^6x4`4w)Pn@Q|Rd@6BE z;=;tScys(K&Ti+b_<{H{@%!RioQC+h@gri-#lC##?mt%7$(a&|wSQVo!s4Si{zscS zIZficat&+Tt-^8Wot!IiUb)1J?W)*sTRJ&W;&f;Yj?)&+`6>35x=zl3CHfbiw_xtF z85bF8!hUPR@Tg#9p)CDvqM`f6&y)na|i(xp{`O**iJ?8QUsSG0tZ1CsL!&3n zes*wd=Xg@Va7h*8a2>4e97h^hIgv(1U*U}5*4fi8DE<_jA4=49wh|Q4TNsxM+s+ok z%8mhd>6Ql@I-3bDI|gv!mEb(Kg0s3H*X|AKJI4?dF81KzxL8xkt^{i?*4WudP_$2j zVk8X<_lC{}f}?#BZW{P{LSx`Hv^BtB;Oj^Q120u<17AxT7=?_ypH{(nkbysypcwd19nQd?QnD+-V&G3EDB35W=7B$n z;Ao$On+E=@&W zA3<R&tmB$Ghmi{IB1lDHV!S78 z>ExHUu)LI2*p`=#oySle=t^0K=_3Z6M-#kMg-XeGqte{T?`xG>uIgA;*L9uz+7_JQ z6Nk~U{Js{hyq%1(0F-j((_b)>#nh5hmDf?x$UjSdT9L~`SMdk$1S9YOe6>zpT6EqXt;<# zTb{mdCp>m$R6Nm&eiYi+aT966QRH)8To@7o*N24e{}*C+B_5AGi#>o(KeSNsdJr)2(+c_Q=n%r%*YOf2jOKN4;UXNJS@JNrk| zyV8r&qf>uMeIxbW)D5W#_zK{UlAp!z;pZhs@mB!f7OV&+@_Pdh;#ce!`=@w+znmUPsQIFzdAm)ya!;B#&+`l zJieEv-Emqz;}>7k(8*i$_^6zwVYu=1_cV6#iUI@iuX@TiF8R86Q2~FFaKn48<3M~1gih0Rb*ToA8L~KpNw1Ds8)r7INrgdBwFC>huHLT;hcntw3)rerZ zuid$|cJUGdsp$*o^@?R`)SCeHUA&0Es-KjUWsQ7>QQO6f29S|pebwK^D+F|k2DRMo zb@2iLog(2T7vQA;ko2yf~1JMGN#*e-|$b;4PYQqqp!{Kz5Af zcCU+<1F~bxw|iZ@5|Ert-okkw-tu|XTkz!_>+Vf`7pHr83n>liEu8B?MuLU645WAs zYV#IO@#qu@H+W0uKyug65#G|t$sOJzRV?1pIgsB;qhj)*=XG!CT` zk_y~Qs+irYu5%M z!e>6K_zW%N>=CAOEh)igNNG@?xuHZx1-D>TqD7e2&NW6d__USXfg3wllM;GTwU2X_ z&3?0r;OI#Wj`wLyesevc;Wru@4>+uTvyxQcH<}9k*z7lBI>i7wEhID?O(P;5t-f;s zLE$r>IUJw4q-0luHJ@qhoKH}+PlMWqe;&cnJ`HXe{<(z4@M~z?>{*BZVp75IOBM6* z*LKb!4Rj)DR4jkciDLP45kWEVnsEeenaVCCtn3)uz+XUc*)f)ZpIyOOi2!;kE8hPX zV)azQ@&tyNC-ISe?&1HU``3g?wyCO3-{A>7~@I&GH zaC&%b`nmL1(yvd?PoI){CH2kJy{WaSb5lq0TL8Q87QiW`vjJ8IXY*SCpZDM3FYr(F zUh=--z1v&qo$2M=pScg?@i}Nf7>=EJ0x_5SQmc<}wP>ii<_0+|g7K0$+GB`DM4Ww8NZ5iRN zffOs@GKVyG4Ww8N4dyo2?;1$4QpMu>U7TV~J*m6Vm@ZDP2$Ek@I~|XXjX|=ti!&@T z8!42h6&5%VnXQZSETWWFi(#+kU|kodS!@_5@TFgGf`4v7R!O~|2va7@jpW*C^VHHrb&v1Uluu8be zX9iNNL>ql(AjL|!$!7*qtcH&AnSm55Rct;pkYc5V<}*7oc7m#4-0t0zg#TxF?8oPL78ZMwhahGOx0p68{3rM)h1!k5O6B2E7 zf%8g>2?;m3zzjkoY-s3+O{T8tq=K*^RctOWjWiH8Gz}RxYP+VEpkG!;Q@*Uy+I22L z;VlF$2aM*ZFD}=2okL3S7R|mnV4O{0c#8x}Z#m0M96KE%U`!z>yhWHbd&`*whqp+$ z$y+8{jT^mXlGV7$TiOT>Z_%hkdCNpnfwxE%o3~6L4S0*DA-$!wYdk^W0$);GfYuq- zo7VcSaijznAf-V9Mr~JXiHrn`VQnEOhE+h#!`e)646B68VQuajOK9}GL|d1HV@L%( zFI8+k-$WYdc}+u3zPhePf?{fDP}AK|R|8><9br%jgmr3D&%2OxNiI#hO}!+Sb&KU8j)(dQnrb<(N|mj$V{- zlY5;)XtYO2t|H;aH=4RRFQWy7 zSJ~KF(Av$J8IwWO5%CgPH|J=~dR3{VO^#l3H>YNdgd}BoiL9lY6ST1%wl}kyyE#*r zswq!uEZ1!Ver7jk>&bd6Xs^Ef!JqQWO#|;8@_`Xkx;c4Ii6_3P59MLJtJd1hc^tj2 zX(I%czvfu3n%}8v>gH4qchHnt%`dn$cXK{RmuUD&%UUcwU)RlP9RsVXw2YSn+tSTB z9iyaTn_=EQN}SmxCHp9~baRH6)gV&XoVu}_6FlabM$J6WYP$zg{C_B8iKm15+gAhTLDhh1Y9?oO@Rn#}GdZ)D;1v$5g;8nu(Wpj81zr!O={OHsGdaW;e%v4LnBkX|(DC#ZfYjr&48ns5^ic{ZFiQs1<&sy zH0UIYU-=~_5^n17hHj7W=tT{WC5)*TT{9V=4ZT>~ogg@x`GnF;N~5BgPRX)>nmasB zaCEqYo0}OUJesNEE%~bJP9qsYo0{2m2f@+I$CYL_Pms;*y1issh0?B$DN1zRMsPG! z!i~-B+Cg|UQ^nKj&oG)@w;IV1+R#kQWjclucg2sPnM(Myyy{Zhbu(3fj`_OUF>n`s z{JXZ7xM)yY$J|74bc}?XJ7yc<(J_QqxEniWYXunpXVD_iZ7Ux_i9shCs zA^xSoCE1hlZNUG`d@z1fe0n?|`yuG@zs8<{wLypQKEwTPOAoINu+*1u+fu)|=P2qr z+)+p!+l_wDk)%?phEImUcj@`({Pr7{o+B!%QFSc$QY}54>u}OQyW%z!OwB6kN9%hy z>EZMMRi_239c^1A{h8JtPI+hOV5-1!1D5_qOAqHg$qF|C=Ke}Q)7rz?PgZ2V1xt6g z_Hbgutoec3e5_~fx41n6=}l8YWH#-1H1}|N!{`%U4Or$rK3LbyISzA8t)d0%X03}4 zwsdoXgQrOImL5LX+|8M;M5!DtA~qsgx;fh!tFifgV>f3!tVh*mP&J0B)!03d@}5;k z!whfgzJ=T!@mIo46K&U!c5{Q9l?&h?IP9^MNjdM#kXTB08 zRmDDbod1l~m?y`<#%|7m7>Dl*W`=QS>gGI%j+Jn8$8sV>DA4AHTqqk5q3 z;mzHg3ejQ>i`ihAKrP*z4oj3O%tvm=ayFFJV63ej%Q+Dp`@O^K*tI2(C3poZ)L`z| z8%jw)nzwiC8qz_>s&&vlk?h#jghh*0tUdZ8+N`ReRM7-`JV&&--dqh5hP7i?k_tNZ znZxVY>j(~yC3poZYsaoAwL+S=ckH#KgO1heK+9#vE+;HHR>MYl>@^jXDw+`KvCGWW zM0M=dq=Jt9?%{RpRRl-J61;+ywPTl-TA|^wYPEOlm864?)pU#-^;ZxU9jjpx!>ys< zax*2U*kkNv=4#LktH)kSD(Kkn9A3vRAvii#!p)&zaj6xAuNa7kj&1E;L^@dAXgau` zv950Fx)+iXMnh9VMbga|5Ei4MVWURl5_3BuM`OOZ8vAHqWlzWCVKlz2jYeHhzSKTi zi&rd?;n8~gYI|~o#l2%e>2zA@>bJ-}yf=mlRVcj_WV(0k;r%fTzl0m_9ea3(4EK(N zR~HI~d&i!E4Kj%~+&hlxDQ=Jz*XXKogD*P0O+CDIgd@S|4nS3q>j~$frtb5pAJN+X zQu>kBfrbi@FlLnoT*KS_s;+xxX;?KCgin1~Te{C9EEWeEHqr-Ym?^=&B_gzRPd8Ts z@3FYN#j!FI^`DuI?@S^1K;1|Icf}Qxb{V4w@{+IkW z`b+#X@TK}Ey*GH5d8fNCxlg)pcCU0B60at{oA_{IL*m>-9$$_Bkh98};w0mp@sGyW z$Ipr9Vm}8x^ycsYRBprPfyVp9*V2GHR@7K3W)@Wviq z3cv{@UQVxrEj_#nfICaL&Ci;9co~2(l{z+e?%}0CsT#F=ta-GDmjk70R2@sYuIm|C z4G^;m6~oir)*fCB!2LBW_9dOG*;q`lVctQFLQ96s>;F>jI3W#2fvbmjx!c+0S`N06!PjjegFH0{FRxhNEa}y(vAs7MK!G^r=0I zZS%oTG;ZzTWdUZ1rXBfOO%JaN(6gj;IJ1No2Iwk@H_j4X5@42SoFbMg%{>Fl0;yx2 zC1;a=$ZF8X_E~Zk=^%w@)j-EOOQw(tW{IYP*2r0MCSfs4deyPSAuxjl^~t1(A<;Cg z&OV9o7!rv$I(wTLj&>W?@C`i^2@Yr1tOIUZyi6c8oLxi9#Y=0?c!I)Rd(;k!%CSv7 z<46g8LrRC^uC0Ve-$=aCU0VnaKaz0!il>=$;73x&>aJres;O9tz>nWh854mo<_nVG zuQkJMetrhQ;pduli=U4sH2hpca9Je6BK^lrS@!eSU!!E&^M%XIDURA;n6n| zZ}jt12o67&aJ!$MOgiv$sblr?lPapIaKOmL%ZU}$s5(|ZKY>)>=ftc+#jwxU)^j{z z;jW!37EveKT_^U8B2CN?O%v`q$l_%rDPk<8qIr=%g76qii8uQBab`F=*%;4j2o68j ztOIU}=fepNKbL6X=femJKiBrZBDV~BjwL1ZjeLM@TBH~6|2ty&_WZ~2{{Q6M!CXh~ z{@l9ULt+UVhj`IP0EpUS4#J?Z^V0=}4Qal;!P;dVS`M=g)PEqK$ z->M!N*>Am^sL*e}QI#-?rhaSem=~;)AAQ%7eX}lrYPGt#&NZS@bOLLCri9>OgL3ZINaA1d3!lcVN5jZfSbmI6BWip zLt{OnMc$@f&P-_LFVVAyu~_KkgaqCaZwv;Uk1$IKUXflSg8?Tc%u=ai4F;T;WHph& zfYXz#20GSYz-bD>Kx1au>8S1H?1V889W`#!r3#VqpKZdgPUFLNP@%Fgmt5<9YJU`Q=&CjYwhKSTu4?w7tOS8j5hW1(=PZY zDIJb~4m|Rbc%y&vBQH3Pgxix9KlXy-NFA$x^0Ti}H5JnU6ViIq*2@pTO4X=3R{u=W zV8B0#S%nH*THj-+?F~u;Ct9KVXIrmNP(&mbx9G!t|?ll zM1t^`5)yBm5{?;exxed;6C6`Qvu?h>>x~f_Q$j<_j9AxmCqXe_KT~_waQD&Fa|dD3 zC4@bUnb31P;n5`$Z<+}`w-FpJs!@rG)IB>$2QDggY%`(fR&zCxw{^FetAUPXCbae3 zOe%2M=hTkHu7C7WV`9&C(uB)unuEG*&rPI=@zE4*F59z>@E9M7H@R%jRx{kXAP+!eh{+? z6^ybT@Y{M;6BbiKdp11iX4}M`Riue2p=siwP4pVN=Xz4aSZa#aDY2697)yyaPKoPm zaMQwu?*A`|Jx#y=|7d=F{>;3e>&bm8cUx|5?!@dLvQKAsWv|TEX8xG@x6D16tMU8) zec|`<1;B0LEd2ie*Xhrtx29*Ok4^n7^|{oosf$u0lfOznmb@ocPUN*_*3HBi4Wix0cR(Ua(?AJ>b%Wa z;k3kGi~j)c0Bnh$7e6lcA}AXF)%S6Z!w(}~7BjDH(Y(3m^NMoO#to~stvp!Q#~BWu zA;J0&BWn9NyjF5mDk9Fzg{Dvr`!HtJpHuiFcGa5G?bJ5EQP8!F- z74n#i=3dTkn8X?tplxTy^m2N`&zGc%`B0DAUe0c%o~)RUs6;zKv$mI$nyJ(Eqgv{F zIhkSLUpkC|@8$f3ftO%0@V%U}z(Hd5f$ts2Rsw1sc+OTB8wr;Ot~B;?vckYiv~l1$ zTN#a;2A&fZ23|8Bajsi0CoT-URIv>_XRT6CRt!8U5d+T&%hc)mz_;~svO>uIgBsok ze_GzlDGMQ6)5Q8GI%M~9;zG#Q6m229my;HTPU1}=yO$G|gj-fIy_~Z!(wcSiDyEn7 z6na)e%Lj;cy_}gaOMb8RtRZo>_HtIjGDgEjzCqHH9ZUqNV_U}bUSqB%Y8lhJ%v_CqU!}J9YEr?#iN@<|%C_FC2#P7u zuMXUxtC*(VrKE`w(KM}|eI?=HsuFMX>?_Q0bd_;K?{b2}vo-60n>O?=BQ!clLmM6$ z_FhU*c3F_xO5 z)z9Y;9%Cu-MnAvE498d+{rp0L!_PJAfSdgM0z$*jHMHSAw0Cw1`a9ia^_bDxdp49S--q_jBs{uN;*C?{Jc46NNVq+K&mbL438`b964NWHsc3rS zl$cggjjCgv5>rV9Q-YXPs9==!DKWA4T*AV!|69dkH*t`q$vLEm5s`}KCo*Rf9wQ?0 zM#nzO3`gEFI`$NT!?88%fSVlqOhUu4HM9)iO}&!|ie}O?-NT8+lS;fL-spI31c&2k zkBlQ@@kG*r<4GN><4rJE6X|&4&DBK3;&G$`$J3Y@VlmzSPjwf^@a?}(Wa#!TW<`Q@V;4|4{qd` zmp1|G`Z%YfmHTv;5MNuU?c-DqPt&mYB!_lSH>QuXI8IO`s4{EKCnz@daUREv(rn}Q z*7Om9K2G77A{yL$_ut3a+i2W$6WGUzTN*dt{r7Rsh6k%u@B>uq-G3jaZrlV)70XRv zAE)e6*H`qXJTbPmkCU_DI^f-0dy9<^E5$C(*U zrGn8V2B#Xx%PJNJpy^K4+Q)er$yTF_@NPYYxUr8jG{#=oH#-*RW{kZCNADSS7y1S= zvqT#mi!-y)xM6ppZy+aY#v{&(?c9gYid zDuxS4u-Gf=Ei^9;g>4r;cxBZ^ouD)8WsJC^{e$5o!UN5z;e7~ zgc;Mvc^BjLs%qc%b&A?P&bqKI6|~*1`o305(C|lsDz0k^NiC&pF2T|tn+aRupc>Zl zTw~u@g2DrYS#xw5LvVP22Di9ZlhwGXaXZ7Nw9Q*(@VrP>?A`- zI*p)kaY5X+)H#(D;4_+STSz*E;P4p@ZtCzT`-YPeyhXEb^Oj)*hqq{Oi?d+(dJy7E z0zLi{{saD-{Z0O*{@MPi_@cl|UXS;L_i^uTZkI|shwaAwo1tLb zu-&*@GZeHA-;F!7cpQ~GYV9b&eHfP{w31=Faoc4u)-rrIZm>+oP=cE&lQERwzR6V5 zJbX9qkxbT_hwa9#kbwXSaK|GHnkNt6jr$veEh@oHjG_MK$-{Qzj>TYX((v85Juw+W z3GPNr#wHEhjoS``v9{s6af4wph7#ONn2ezW_YJ0!iNkl}9>HV{&V*Y50|69Z#cwE> zFnl-G_a<8tM(n!TkEK!*va^55t-DEAC zIAYf}Ya!~~YAqZ;V%HXH;kXgIHd_l@N9?-MTG%pj*CrIkCu9?{p)C_e?%G%^b=b?zoY=*4lMZdV^iJb>yx!c3qUNwwIzeR@p71^m=<~^T=H*?Uqq` zomIDa^2l8)th!WstzCE0$X(0rx+uNIuG=Eb=hUehz6PqqdFSF~ybMP?Ari;=gc3pVRV!JL%7uj{;IScK&EhBa< zpwe;K#Kjx0Te*3|Ni){mv}WC!I6LUuoR*b@Z7>uh^&WABvaPIdI&p4h7>k__-U=2!GpQEd-%kt%Y!@TWp2Rle6xQ*g1(; zV#%7|x4~n-izK--aEW&y>ae^?um(4@*VjH^EdH#0)Lfz zBzJf2>Rc;M3iv_xzUi4oD`ulOIoROV09q_lNF7iKpEiiGN9~NQ`$5I-Smg&JO27=fwC6@u%Z& ziO-Fn5c^&1Ylm)VTJ~UFLN9E%S!{+ZoH6TyWees_pND6K1HThNdTn)YB3L$96aDtP&#cq#y?%wE3Xx?&Y)?!mIg znK4=5u}@n31{_zhb?fpKtJkmGuvPg6Ta3EU%8n(pmq=MvSZWfpt|XVeK2j)Y0Mrh zpLxHJpcR`=w*9{PJ-oq=O-fC{_)UvFytj@`N(mO5lzRp?*Hx_Hv)rwFcyk>a+XSuH zREv6c)3}E>*|AZn+Q%WO#z$v+c%K~`l^WcOdEe>%SI_h;2tid=~NEJ)4=)=N{y;jpe3$$R-+J|KtKMXyfIylDG`Y^P<56d@x zB1cLU+0mHn`mmhiCvp-jl3gEGcT8Nv%D2!O`>^%IqohGCd8-ebQ9Mc-+?==iusdZj zZgPP>>{pqL8-ssyA2zVq1vDyn-Ou`f4cl7m0#e210=%ZgT1V3`xd1OEv256{x&Xc= zXmx?sK3+^prKp%t-^VLTERv|ELH&kTkXR&1u=E>VIHI*0c7owO5neaqNv;OP8pHUc zy0H(tZ0rk~g3Zye?Z&>K!7Yx4Z8(c@qoZM8&Sc!;XxOJ?N7Ja-ms4Z=uzAOhCRJ>X zh7CQQvYLi;v@w0y-Qz{|U)15ZEvj4lu;ItSi4-cbFMeBN_00M{>;rOe(rPgWCu|FH zaFSr@WY{F+mTFj2a9T!Cq!0~i^BHU*@~~=fi_c(7(PG@_GuUG^8MpY%m4wFAe~n6% z&s;$&c=|6@Y(8^2X<)i)8q#O#`><2Vqp7~5jkSk-yD*!1N9@?x12KH(@0|2|aCbf< z`GMf2V77mscX9kx@74Ilu?L*{60;L8x%cJg=kCXu08^pzKl*Ry>F-U4*rG|zxM=4^ z$z&3a%{Tkgr_n+bDWI63>E<<}Xw3E3-aKu~mX%w#EM0iZhOM_OUAX4Dm220mSUY3& z^3BUvY{e6pr3+SW*|=@6BdQb) zJyBsEL<2j~LoOwIR4E#IqQX3ghIXR3qpO` zn;js!xHy?Aw$Bhf6{5DHzlrF)ZCkHjL(`8Q)t6^fR2^WOv$I8jwXs!-s>D{*0VnVW z*vdeKJ7$G#MGRAl{wB7Ofl8PM(WIT|q5Tm#|COSlCo0T?sAnaLAKKV@R4p2EqS8Ew zx^|+tQ?(2|KHyhTH1tG;c@Rz5iR$ye?4!*}(a;kW=0Vi46IJ4xl9rp5qM;`$%!6p$ zPE^ShDp93q=!pvRAR4n1wXdV_WwfgLs4&0t^n35L6IE6-YL6;KL*JvqJc!<5C#pm< zm8eoQ^hAYu5WU?_R9SYZM3thUCo0UxV)1K0G#sB9@W*^2%q zs)H|3lHU-DIos>D~+0lr6;`6fmGDvu4-u2+hx#8=b-zDGpy zJ#>hx>|dp*N_<5f;G2))iwDOxe^835#8=dj4Sy9oIyNyz_x9;GrMgq2!->h8f^P-G z{Oi51;>rAy#3!9u&a3fzW50?`%$}EdPx!0wS7_yFm95NZvlPQvJi%9vic(aiR*E{n z_tYr97)BdkrKn1LMIGRKN)%rVqm8dpR3*Nm4)8sxl5eQ_13tW5e#1hIDoRn6_=-Bf z_v9$PhrV7a{Z}cf5?@gV_?{TW7bhdz`d2Bc5?@gV_?{5O7cZRH_$ozJ;w$O^-{YhB zBJJDwDn(V|E9wB>QBi!6_HBHXqAKwfb%5{4D82~THoi(xmH3J}z;{FxUj%F$U!|x@ zd_^7Ldt4M>1Z*2$rKn1LMIGQTcN+bT&dst#XS2lx();EPQh8(+1kI(%gv z;CpNo-$N(q%lxJkRf(^t1ALE(;){T7TQw_1RpKk^0N>$Je38Iye3haq@fCH%V$Rn? zyc}M-tJat6z}uFSN>TObmaC^ab~e1XE`ly*TNy7_ljWi+(N(H1(XEZ33vVxTQt2v1 zRiZ2EK<}OrK^M+$qpK8EiLO=$X4=tFGfml$Q9D;DsuEjK2l!U(2g&^vWkW{gs}xm< zuc#v%d_LCheT9Xb;)Hgohw(ds_b1_J0_RT#j=0OzL@=awlDi^_M6$q zvR}+TnEgoh-Pt#1@50PXEPNGTSA0I~#rcZg z3?B>sHT+cg;qYDIo5Q=po5FQ}%U}M*{EN<$|M&g|UO(~wc!nEGIpJP^bbMPZ?)c#! z{pR>uNFGbeA-ODF3dv#VVp1U3d93h?e`fqlRv@XF6-XM*3M7pp1rm;Cg_r&F;we^u z6g$WYB<*Ddl72@DBs|XwFZpw0y{tge_gR6Y|6m1@zD^1x{3|Q`!M`l_DOMoq!>mBk zyI6swyGenByIA4({kn!@olM93-Em2OxPYeE^cn(mNnI zEWHU*GCTl{+aUQYZHDBrv>KAj($$b0mKH%uhWnv$AtaxrsgOLDCPH#qYJ}vlbPA+o z_^S6@tQL~b61B}^iQ49}L~V1zSA##EOKnSrfAL3S=aV!@`Vl0Lr2-_ErT>EDu=FIP zWVjEwFGKQK`ZOeurTZbdEZqyqVd<@qlHs4B@j6I8OE*LESlR%|W$8Ld4og=+N``-e z#(YRVOS2$(ES&|(WvLaC!&0%mm?Auu9!(Y=OP8f$d-n#fT*B?mB!gGx7o}A2%DkeK zPHo`YlHp#AKGl{C{|Jd{ONOsNqS}(-%aEwHWcU&!>fL1c2T0Vr$?*4(sJ0~hYAGT(3 zTOfHXt%2mSv<#BN(qdvwusN)df;62KNSee7B#mJOl1?K95=OE@64H^ZKvDoH*nctc zapRkV{X8H(Nf;0mk;Eh7k%SQejreANKZYa)A=r-*!O+KV4EFPoxFlgn&=!)4V?q+f z1g#>82gQls=5zrOj1D7NhEnBok)@sU+3>XfsL#S_Q4up*(3aYFqd+&M+E!W zT9D2A`(O>1^1;5Mv24!Y2V=OD3-+t2qicy(h-^k*n(BC(L zFNMLrP*rk1v*rfxKIMjF~u}?ek*ZBwF({OWKVwX1Wc;q+0K2qH61%id61#Lj5?q>$ zKw_VE;&=H6;L~7&OYG9g_?^K4c4?O+c4?m^cIkj5c0!LN_Gu@6r+)xm2qU<}E}e|u z5gcGIbV*{D_DL$bAxUsUVgiZ%(23vSA7DSEOYDcq`0c>~_#w>|NbHC{NpM7(E0EX| zJ(A#wG*@o-4;;%(aOoJjl#JgN95}jY1kzC?`E>0_k^+*BAju;sPm&YA%|DQ1Be;~M zOUd|-;6R2Xm!yy+pQJQN0ZA#6Jd%5B6^&$t7tc zNj^y%ND4?=Pm)K{I+C3Dc7Oj`HiAnx(4}PjreOaXl3bEjljM`Mill&~>q+uRT1k=< zzscW!9UH-=6?7>X-xln@mL!*?@=ES%7`{%I{T;d>?jBiFTEH16;A@S0xKI>i+I}(8^_-^70!AO6t_gEt4h2=N> z!{@^0^j)bRq)tkFF_CZ<#Xk{yHFo~M{nw%YVozyW#hy}Ld;W`UlHykvCTcxN@8RK7}4mH3J}z!%R+?0l6c z6)In)s7icA9pHO<6kntjTWC;D~+fyKioDndg}n{J5H#czJeHG@)ACAy_L(5VwD zJM|xvHy#KqxfR6V&kh6Rf(^t1AJ#y@;yRZF(cTQ52aN7 zK`E*dUr`76&Wz%VU~l8A6jh0@r~`b@i{cB1xA9eqs>D~+0lqV$_`>0Be3haq@fCG| z@AN3XaCjSErKn1LMIGQfv68QT?}q`g-AgG&RpKk^Kw^5J;)ePkauXhXiU$SdO_hI0 zlIP8-yr0IC0y|#>5!+_AQdA`$5Ott`@u*RmoS6Vc6iX#W1C)N_<5f;5#LXFE%)Ae3haq@fCG| z@0n42vB6>Es}xmdP8(mPs7icA9pKv*#TNnF z##bq-5?@hA7K?^qvFG^r|HZTY%1`{0n}Vl8^bg~) zta3b#)$XBj_G-(ld5el0=;}R_QdFh!5Osj>Rh4{?(fHyR&t~u~E>KjyN>P>giaNme z>L|Vw?0l7?D)AL{fbY^MzW7jst$&rGD)AL{fbW%2eDR$E8(*cUN_<5f;Cn?BUpTyt zuToSczM>BBy}Xj|(b{}NLYh2h=J}@hpcGY!uc!ljFN@-fgkg_V4dlJQ{@;)5w4WA2uVs>D~+0lo{O_+o;VNvZ1xrKn1LMIGRKNfcj9P#a&R zs7icA9pF1ZiZ3RpjjvKvCBC8#@SPXM7ZcRRS1GCzUr`76&W+-W32Ni36jh0@r~`a2 zuH>sfqr(lj?HQ6%R3*Nm4)C25#TNm^##bq-5?@gV_+Avn7Xih_S1GCzUr`76UKqs} z0ma5wDXJ1*QOCgjfBYS>=bWjz`v>0kSMU9cI|H->5I&cm|G((=KZfyGUO686{XcHF zZ1?|4QI*C+)B(QNMDfK9myNGdR3*Nm4)DD;iZ3<{YF zU!|x@d_^7LyDEw=0*Z~VQdA|rq7LxAK8h~_ijA*QR3*Nm4)9$W#TNm^##bq-5?@gV z_+A&q7eTm8-2N_<5f;Co{wUwysPX3rN&QI+_LI>2{R z6kh~DTYgiDs>D~+0lpif_#yz>_$ozJ;w$O^-xZa7_4_v{*zPZsqU!N2S5I|-@3u<5 z`g|K_pKnT0mH3J}vcWg;{lA-I`O9)&$R)FjGath_O=qR=#+Lw24MzD}yzh7?yEiAE zO^kMKk9Wo!0Hwdb``^y7@571wsW^SpZ&@;#!mSH`ta9PJ1vBuqnaU4~Mil*By)ZKKQqpzWz5zMLSP_9}eX&QpVT4e88v8xnS-x{tRI=zP3~RlH{~G{24-9 z(ceUQ;Okz~)~#8&fr&<$2T`1EZzGDY?bwJaMMF_qXk9UD=lXy}Ow^B{`z z_ia6jukF}~Dn&z2RG0@*9K3HMifLsdsuT@9QDGiLapL|VqMn#c#qWR{CsVm-=!s$) ztL8xzNA25)!llb_wGB$q&=VErK@?}~+la!YZA6u#p(iTLgD4Kyw-JR)+lVSfLr+wg z2T`1=ZzBqqwh>i|hMuS}kB?^IC9ERROOq+u0=W3R1#_3ppEn1|6zyuAJ?(-8_1-Zsq0;^Ea+rvtlJB(x^(Xc=)`XE?Q@!s}xm>uBZe{6&(Iw>|HEX zsCO%tD)_*nLf2OGchMbWsiJV8ia;6X|Jx|zQ;RmrN>Mc_i;6%Qp8&8?#zz-zl$D}t zQWh0~GR`KqQAQ@QQC5noNm*0`$~d0fMj1K9Mp-GUCS_3(DC3KDHp<8@Hp)s-H7SdV zK=}weWhKC+%hf(}|t#LV4F8Z4o4|Z>(ng>sO5Zb~M zzEei4O;C!4o~JMmp7_kRg(n=w##1R8dY;037LW69O&=A@&&-^X8J@{x;y8u=clZrJ zSNNUqsqo9;L*Yko2L0~v_Hc8!DqI>~63z;zgw5gU;fOFFy6JuC{`Ak&z3K0zzmfi0 z`r-6P)Ay#|lD;dwEqz0JS$a|W0(=i(T)H-WeEO*TnfbB#)AGmVbNNK>&p3zw`CL!# zncTnSzMA_??*80+a0>sOxvjZ1xvO&vbF*`2;|%^Ya-(ub=KSn_yn*n`>>ixJ{~y^$ zv!Ba;Jo~=vJ=xb~w`bR7muHt`FUn5MPRQ10PsHi_smyDcS2DlJ{5Vs{{AcEIoW1|a z%m*{?$h#q;`amp!9 z*$h|uFXEU}Tw3X#5kHDAT?Z*immu&d{z13`(q6hm!V8SL7Si){iG)7Bv>ej2bcuv- z@uh1ZJx-TM_!3`Q2I(QXL;{`s9)wpzx|c4Ia1UR)3exN85(&5RrKONI(IpaA@ue%h z{jsa)5(#wjeGpy&=|Z|h!Zf~gIixnaL;{`a9fX%bI*l%oK&N^K;iZs{q)Q|u=~B?o zhx~fs_Mo2+`Sru?em@=Zi?c|*ew^`}iYEZ3uLL;ZEs*Fd0WM2tK=N2R9+J-zpD@Z2 zoiG~S67&~O_ziFN`*FfAF5MjT^8vpBRm2DUQr&#OZxG((_n*wDn}U8m-!}-i`TaQG z7mC}0em>qe2)FwEINleRwg&w;-IrRn#qY=QzPPj{=;zaYgK)FokJEi|X>-tDJlr?D z(eKCMzPNN_(9dW42H_^ZpU?IUHwFECwr>z_^!stPFHjqUem>ea2silsINBGNHU#~A zvTqQs_xo|OFD|VQ`f;!?kyz*V<78i4S{L;5!M;Jb*6+u`zPPkD=r5k@8{Xje<6K`{ zx*_Q2V|{~gjo;75`i5(Qem>SW2v__4IMx@a)j>a>>KlZs{C=G3i%YA5em>MUfRn%2 zTCDpV|NpUf9#C>rXZD}2eyOUfy8#hr$WcNgm{CpyNk|9~2t&9*ed3}Dk{B+ak`^)ou%3?yfCx*e#W(P?HNIiu6;K>dtP zH3P{RooWZ_XLO1gNY3aKJ5WEPlg&VKMkm{W`Wc;M29h&6$qv-d=tMJ+oY9GPpngVs z%|LQSd+k8|jP{s;|WJL6-3+)%kQJ{HIwl{@3(fZS5KGd>;2J(WA-Gl1Mw zxiel4yd(*BG4L%3z6E%3f|mdge<4*yX zB?UeWN23Xq#Ecg9}@Vz*@p_B9~)Tkecs0&>IU&iG{@cUHR8Gi%FO_w|4Zv(OGvIP4Mkozuo#@_{U_zl|O@CY0X>lao~WZM3;D z;d~%`PEutY)9J>9GLB(&k}BhvW;Z502ne^6)PsTayD{M*Kp38+E&|f>#)O9g;dzpJ z7?7?vCR_}J?Mdq4KpNke@CYEBPg0iv>3w6uBY`kKNfiU3{f!C5K;VCpDh5Ia921Ix zzyc*z41^{)COjSp7nIZ!fb_vJ;fX*Pp`@M!q!o?{PquxlI7GVQ5|BfrD~^F2B3*GA z$RW}dSAZNMU2zr2A<`9Z1LP3tiaUWEB3*G8kVB*^-WJFq(iLw9Bv)~W zbj3K5t2jiuVjRg;93ow@97zt5uJ}wKhe%g^7LY@vD?S^@A<`9}1LP3tiq8ddh;+r5 z0y#vw;uSy+k*@eMAcsg-d^wOqq$|Dx$RW}dUk~IE>56Xva)@-rHv&0Cy5d`b93oxu zZ9oo@uK0E!he%g^H;_Z5E4~NFA<`A!3*->#itht*h;+sG135&x;`abKM7rYl0y#vw z;>Um-B3<#bKn{_v`29c*k*@dyKn{_v_@h7$k*@e(fgB=T@yCE1B3$SkK_L0Mpr=N4?IZG}& z?V=TYB7Wq&1qb0R$GMA__GH?C-msNkycUtC*UM^?-b@?N>ssl>Yg2i8y{tCr&9s5l zu2Sx57uFi{R=d2c^%C21^)M5DaSx8HZFOYv0)F0+^|IDW?7DkyrVZ#dje2*=jK z-|&W3dT~PX^mD2=)JC$UUZ;QQ5ioQ z&1#cgulc&(Yg_3>2O1US>-DnQq&L$Bj_)GiVOq&L$B^j_VlH~oI^^!)dG zy{tCr&9ni%SGCeREnlyf)h4}}HlX*)R(hxA>-DnQq&L$B^j^_Q@05JKURIm*X4-(> z%UkJ%0p|VvtC!U#y_q&}Kg~NK++oDIcNloXE$0rUrL(RR3E2P4!3B?^M59{g3KLtIt#)t=?0;t$Ka+((2jO zldDUr2UcfSCsy~UZd={7YAUZ+{!sZvrB?Yy=ADvvF1UmjC-@nHO?_?K~i>iPXG@ipMLDdI6p?XrTt4&N_&=eC~aPfqT%Q-(XXTb zj=mjzIr>cWk?85@k?8K|*67;klIX1Hr09rfK{PAsiFS{=qD>+l{xkf4;m^X=;n%}2 zhW{RZDEyc3f$)xSRd{81LAYgD3On3u?zis8?z`@*?myf|-LvjJ?p}AhyWU;u&UUA` zBi%x`kDKWBaND}goV9E0AMGz}&3?naXg_J6x9_tL*>~ET?A7)ndxkyU9%kp+>2@!> zi{09mZD9UperH}a-#0Ir&zX;z_nY^c`_0?Tjpj0Qu32i1G6$Re%w#jpY;VRGr-$^P z^{@1Q>2K-(#Frah&`;@y^|$?m_hMIZlcEV;5B?DRJXjrkJ@{hqiQu{5iQvKD z4*y^B%s%;F+c(H{Q*DYsuA4d&0J&~zh+H?dCNO=2ST_v=CUV&{K`xsrrgGU-6S-{a zOaZaDY-)&HHnpaJSXeeiEXn7pX@XoeRZQiosU~vO)R_*H<*KP6a@EwD4#dK$DPl=J z7flo7qN!pk7fm&hi>6KwqbwIq4UvncRu3Z<7EQx|iCi;HkZY!jsa!MFM6Q{l2Ot*L zObwB1rdAIj7S>D=OY*s7njn`<6;runs)<}Ob$SqGxnydHTr#zK5V5diidd4*71IQ{ zVyc+R6;n;*imB6UP?jsEhRBBsR!?nv94q+$-hDp1Lj{YsEC&dYT^n(r~i(!mkJu< zC4yG}9kJfRSdxFSBnHgCNKg?k6x75E1fBjH%APN1i027f{Wruqm$4-O97znAf3~0^ zo+YS>X9_y~8pC1KTQ$?<}VXe#8U+|ajBrwe?{3-1P$?IL973Y zSSK--r~iVo#|j$aF@jeA1+k81EXhAg5(DNRDX54`1U2yp zL8t$WvWE*A;$lIo|BP6NF_z>XDv1H}7YQojA%dECu%Od;e!J!%K|@?9X!V~E>p;em z`~{L2Fn_+FA|4>9iSq=V#$(~+BjScQM^df+BVz5(Sdzb=BnHgiS5Oi65!A%lf==UU zbMh^5L!{eU{RhN?+oIn~KFu~kn61Q;RJyGu(rul_L+s>};)Y1Kwfg@d7TgxGB%fxR zAk0=`Nh;k|6X~{2x?Y9ig%=>eqDZ4Hrb zYxMwP!EF&s@@cjS!fYj$q|$A*9>B!Jv+H0|9UVO2hRB0piPS}6t$?^CV-ZV&x~veE z7VFBG-ja`u8zRfvauK>QZ!C<3D$K9(qdg1^I!7GaYLlV+A`+H;7lrs?yE3u>~ zEmjd}v6@JWbtU*_@~Lt|q{Z42d^P!4ITPWq5=)96DyWDYgqnDWq&mE=*Y`Rt)(~m2 z@-|=J>#$h#FUg0)N-RNItRm84HIWwU@Sb1a>$F%yoGaDjHNd{tG2#(R^5L)&OOO_; zh_qNuq{TYCAlUahE!GfcC9y66_FOJiF6lN+7|_Av4%J~iM20c z!D10h^5L)&OOO_;h_qNuq{TYC1K9UEE!GexB(e5EtZv4Vd^nlJ5~Rf{A}v-EX|XPP z5Cv$lhDeLG(SwKuiwy%N!eJ4MNQ+fOTC670EM52|#M)8H8sZMr6@Ce^wwG8;+>Wt` z+X^aTm!Kwg3cB!%h_#KNA<}Ja_(jCpim@c0W*aacW-GBIm2RtvbXymG0jYFbL!{f< z@C%5w31dk<%{E|uC5a`ebX(0-x~&U0K`PzW5b3ry+yt>g#*%!RZNPk+#FA9Ht!66S z)`eB1(rpcqZfnCTV!>^3ydDHpEj2s>Wxs2*B*sQk<5 zitr0z)tzXcLQ?*}##^@kP29Kp1NgW_SSVmq0sMu2B+nKa{)`2iclI2$c*&7SOaF%rsIOuWxLj z7oSDR)9YomOK+x;(s=ca7J9KQYMx#%t6h3CjX*DVLXe)@q(5L=)I7ajR=f0O8Yzu0 zV%wYC{)=r<^YnUI?b4fRq%=PGYzw{E7Bx?=m(?!4nMRaSm_OjZkInxj{ z*UM^`+)N{>Jxo$Z7tdMq^z}n55+5#nU{wURJy0W*Whc1iP>84B740uuX&~w_*D5vNlNWI;M|ILy){%zGSbv z`wrn{wNrAYAxPdeU$WQbeaT){J0)itD(mMvHtU$%Q9Y*e0X(NaE`Fl)2kifMTlk%D zM{U$e#TSY$IHmAx$7?7w`mf=xA69<2{AjsUMc0Z``{Q7`nmFg^!$*9vp>KIv?fli5 zhM;+I3(c6W@-%x{?bMuU2%7O_l-%Qt=_*gNm(@DJs<15XChf;hC zCHI)(rYujXm$mVgX2L`1K`oS`U*{?HvNpcbO!$rtZ{dX_s^Kbhq+e&RLcOf@Qu+oK z4l|A5DztIoC9QX)cW3o_S?$uBX#{#37hckONBVeHub0&>y_rUE+1$ABlGZ!Y)3bWL ztajk5sJGz~1`D}~Gt~9wWo?k&bzC`n z8l)j;p4&n*7HaY|ds*$&oM{M}=d{r5`HFw->}9o6bEY9^-oJ%r&s%)WURFCbXBvX$ z{aR@D{KePoWwldtrXgtFw}obJ%=((WtafV7G=wXPeb#Dj@+cC0DOnKDK8p0R)=Trc zu6##ZmhezIyMh-ePr8m<^w8FdkOzRyvA6dO#R=f0O z8o|tmuPY`!7gwLu+i;1At0=EOPZeXTg%pS}L?Yxc6*sX5aS zW{;EC9%o$1aecetA_#pcS$A!EB{!P2UYgf+CFh5S(vw;!MGqP+@6U5y*2Y(w2@jCH5fTEk51 z9qH*=y zqWr$(Wo?k&b&T0eL(q)9d~!9T@8xOsvf8OR(-1UcKc8I9m|OESds*$&oM{M}v8PY2 zX3Vd7n!T)cYR)tS&Dhr`SF_ju{r>D_wNrDZA-Eg%_DMA3&aaYkH}s{+Sm9jK{Oy&| zto72|(%rn4B|Ma3SD##^=s}}$GIxHXSsP!e*K%DczK@%$6#ZsYj<3|q+W1N{;c-my zSb+wrJ3+hdT9%#=+}8ly{wI|G!s5`XTlNHFbj{IgX}EqWv!ReH!url z8cE%mr1g%RiL72Pt6h3Cjil~O(t1bEM^>+w)h@l6MldT}w6^Es&V+jXtDL0g*7fFP zZIIq|U*(KykcOc7!WNoGyg94c%W9|QOheFoK?}_zE}hlvWwldtrXgrPzlCORtom0B zURFCbXBvX$^IB;3`oFK)%W9|QOhcGG&Rwe+S2Jm~Od ze{k<*ZT#Pv2@j?GyljqA9G5($Ue?A}nh6i3{Hkn@Qq1{zO1-R&uQU@LO8GI_9HnrY zJf&XN##fpNA6@CaSHXVjUw0--v)4r+w)h@l6M*4all&{FH{hKA~^)D_*&xb!xW6^6gYlHNz`?}L_ z2%7o#oHE*Qt(?}3YrfI)zGg40otiTZL9^`In|GW?T)N&b8cu9BLbGQG z{&DuQ+Nn9y5H#a^Jh{i&>;JxHFRPuJGYw((z&CkD)>k%3t*+rWPQ|l>W~*yn)_Q4f zdEJ=_52e_HI#(&&Fi)wMwegi^!b2&(Zj-AN=O9n1m$mVgX2PddDtPuAX5^9bO=pbc zM@ZIsDSZPove&*ef)R%A+Kh}a>TR$qOber;{1N75ZIIq|&lsZ`>YDLwn_SIs>(TPQ zW-qIqnllaIIOF>^xtihDd78bfc52Qv1kKpgvb3qzRHsv-6l%m+oR=i zbQ^A&y{wI|G!wpDy)@bX|Lpo6|Gm}S8}|7Bd1ZCO9{&$k?r7NK|Io_ZhCTiZ<<}ba z`2W}PvkiOvpHn`iVUPdq%9}Op@&C>E#rRY4hvO&XcgJ_eH^)~u?D0P%-m77c|AEr0 z4SW1QR=U4okN=}f2RH2TA4WqBd;EVodZA&D|F=YEHtg}gTh!UG$Nvwp?lHQ@|2x8! z+~fbW@YrxsI47JMc85D9JO1-)2|uoWmtRXb+5Oeq|Nj|p|NoP{{r@-h_W%EqZQTF= zDsTV)3EuwyKk@eezt7wM{~&Mw|3Pp6{||fn|1bCU|KG;j|Nmug|NlO3|Nkl8{{O%B z_Wysx+yDOvZ~uSo?f?JpZ(#rbmA7!GPh-xsD{tXWpO%>H^l8pCD{sM0pV(Yq^10Dx zg52m+F%=tqVkc0u90j=3ry+8uPfJX8`ZUWC3p;%xmK5bip9ylKPsLPh^eM5XM)`5Q!y1AeM+p;P=Gsq8X|Z4w1PJ$JAInd%*vaw(mkK&_G76j`Xox2ZTH;B9+MJA7Co+~4 zJwXx!<{vMph{p*!a}o+1D`<$v2wLLNg4&#fSVu9I6g^TB1LiLgRKz0$ojDN&4i_}U z#e$Z2n4mT%BG#ddB}ErWV!-@E1QqdML1#`tfrA7MaiO3k9w?~I35d0Tv83pHNeq~O zfS@AI6LjWy6qqY$h;sxjaeqN=jz_Hh7)y%oD~SQ~_YqXY*@Dg-hXS(%4RNNRCC(7k z<~YQf&R9}(nj{9ypDL(`Qv{tk76m2?8sa2DOPnaE&9R8p%UDvhM-l_(?=7f^dkH#o z3<^vTG{kN}OB^q#%`u3zCu2#`agrD?f2^P)?jh*R(I~LHpds!iXoY%uy(?gP9)=s38dQ^ zBHh*!>9*P&iCA!3#FC;k+XP{@5=&C)w$3a8(rpcqZfl8jTWyvg7TgxGq$tfcL71(? zl2p2_Ge-dFwuVTzwM4qDHb)>9+!nEpUOA{0SiWOod{zXjuD^`dF|3WOuhkZ#bLHd^>(!Vq@@vpdu0*QYS z6aR{fhz0*bEXjv`Ni0G7mm<=?G%@k7(&Z?S_!lwpuhQj+1^>d%;*t;hLM$TvOA+Z` znwa=k=`xf}{EL|QSLrguf`1{F3rNTO$_y3$Y|0_9d|d>0gRS|I)<7zrw9hAn`9^ z;$Pubhz0*bEXjv`Ni0G7mm<=?G%@k7a7z?O{EL|QSGXl&!M_ko@?l>ROOXDhi1aT_ zO#Ca{0tFKPA}0P7Zh=_vFT|33*q6i-q<<+Q{Yw)Q|8g<}68|D5{^bl}!M{Qn3G!iI zh()A-DI)z#6BGY(GKLcWA}0RjWDLQ-5KHo5UlL1@{-ucYFHKDR%gMk<{EL|Qmy(!Vq@@h>L>Bk?a{;$Ke25c~_VBp>!Au>|Q~ib(&`#KgZ`fC7ns z5flG%0b;?w5KHo5UlL1@{-ucYFHKDR%N0-{@h@WHU#@^y@Gr!YeAt)75~P1AqLx%m zRD#ZRpg>X35CcK$IuNVCSd!l%iGk#=xja%0MuBSu4e=U5YlqFsRaZ+a zCSE0p30^6vn0kevCSES+>=0tnZ4HrbYwZwX!EF&s@@cjS!fYj$q|$9Qk#6hkAX4eJ zhDf)yb`Y`PwumM9G}{DWwh~KH>9(3kw{_-lq|$8-@k}Xe&Ebdzx5b1Z`83-EVYZ0H zRJyGu(ruktjIwlFBX~1Uj*=;76^+-L#aQ~JYq_!o(nt)EgBzcGLn_A`iK8JPqJyGc zB0G&PTbxLq5y$BZX9VYo$Wvlt8M`Xp5@{AqQUl*|1)eR*IFd(enO!k(agcm1e?+pZA`mQ)$DxJr>#$rP+0RFKfM& zzJYc7Oe5jvy(j5uy(1?&tJlkFm)=Yxeccc4v9>2*li{@9k@Jz&>t(e|Z>ABfBXeWf z`crA@^`DD){UI-FgY>TZxyYynX$YFRvuuuLJd+qL@2`D(S?$!EX$YFRwQP=NJd?=N z>}9o6bEY9^-eqlH#v2RizTu5k|2TVD?bMuU2%2|pq1o&IzGg40otiTZVV>J*t!B(~ zo2BMC{Kn~+=bHT$o|m;=n%DJQWVB@o52ZV{PzpC3E$`2BUe?A}nh6i3JG4-WbC9Rh z%i8!#GvQNzQ^B+E&&Y|=?2IvT_9bh*l)kYUd9;0LB=t8HX}u$7BCFTSYM0(jBbbr5 zUE32dBd7I_oR6$tFRNX8GmXH(y4LE2>r$^j?T(%g-@)*v!f4h8>0S4X>^B6>oh>wD zHXJSQYxc6*sX5aSG;h;FGiJj)&0bbJHD?-v=B-<3_6)&4&R$kKHD?-v=B-+2_WHlC z*~@CD=1fDFJ+@q{88b59)oggkkG_<=tC@XM!OL1N%`Io-O!#u~PVE2xBme&Y%i;EJ zh5am+502AMs6Pb1;QRkSLb2rE|Am|XL}TCH4{}>s`DP2uaLaTDnK*II!ubcR{boyp zP4+Hr$Xc)Suy$@-hZklVLf;wLRTh0`i_F#B#NGvqk7~ARF==T-)_Q4f*>^JGp>$*~ z*(ORSHp;<)Zx{ex*2Y(w2@j6Ouej)uQU@ry2M+r;Ms4unj86L*{cmN zYrT}N?XfMsGL&f~y2N|)KdpD<_ht2ZS?$uBX#}&$$R4sV1nO-V_EXpPgu33mtPRq; z4oC1bNJG#(vYTuZ%~SF{4d)# zysUO=&NKwg(^_cu`hRBfOH5CGPCGSw8l)k(@zk}N;l`V1XSg2BaLv~%CXQyUm*#cN zaDI3wozg-n+;FsfW`-Nh+W1Pnmg~oKatoz62cvR)rC!#?SDFc*y8q|d_h-07X?DgK z`OzEPV_VN~qwUM#z=dSv7c0_wM}A*cua~u6NA?ZO$eBjq2)%220$hxG{b_9U_xX;1 ziDxuxgY>R@hVvVO=AIUsF}sYG_ceQ2?bMuU2$~x|$(laSm|gNTds*$&oM{M}8$ZdK z){NODPqUZRPR*Hypm{=zzTx$Mzi)V1?bMuU2=m6sCs{GW@ySQS?GM&ClBYG<`+qNM zy)>_5hHGe9!k2@|9Z|HR-?%CQYSWo!A1 z!UpF<&zd}E?wol|?)JT`^*ZWnoq8S4muU!^k7=P9Ju6SMm(@#dnDeqWNOFq_+-qMN(N7h)>3IFSy(zi4sK}G+WwlFgrV;&=_hs3XT%3$N zxn5SgIVT-bD;TraC#ax;x!W;<|g-^IOu>T#Fnd;ZMkWo?k$bxg*Yh9G%CzGTn)e92x` zJ0)itg5>%6l0Eb@k`Kt2?0KLs*~@CDF|5xsbuPuGKw7L1GS)e8suMfT&Y*{!B z+5W%(vHO4AEjR9C+9gj88g3~tQm4&Xi0{eQ*JAUs+IfUM4bl)aH|}Ga){LQ=r`gMD zr{+vU(A>C>X<9SJYMy2C%k7)X}$P;d3wF9cInMDfmBLuO`o8T{*-p<_1c$4;AUK-sJj{Uj=EWIPwM#QWo?k&)^6r&sB0eiN-1XL zl;$3+(2gER-+{fXHfr`Y)HRQMue6C~EEVKw_OjZkInxmO#>kgTn`p+>f1YM9tDTxN z4MFn>YyG&1W?cQ}Y4)<(sX5aSG>?4Ew25YK&hh)Rm(@#Fe zbW+cpBNr}NdnG^W%{^XLdyjF025AVI8}|oIYo3&^*~@CD=1fD-+_*nzT61r{W-qIq znllZVh2CA>cG5Q*E{1VkG6Q{MWOXPnYlAemxK8%kmqyG&?=CN`7uO|udcCZ6>CH3( zf4jcH->BCcV7}hGtPRrJ`nm{%yg`FB1kKmA(2Q$q?-(~|_OjZkInxj{H-7sweVo1X z;?E;qRy#Fk8jA1q_66BCwZekmI2|i2Bfi`)_PneO(%fR~Wg3a^^t>Xi7h^R~ub0&> zy_rVhJ3X&R>&5xV)9YomOK+wT^kKdMQoo0y-iE=2YgA8fUe*TbU58hA8l)j;9{JuU zt~t}1agCa%*~@CD=1fD-Jo4qwCYo`Lny1;zYNzH*L(n|(4bUc<;o*6jy{vX>&NKwg zBVPk;qS^Bo-;=$pc52Qv1kEGg1#P0)8?(MrCrKKg!eVWwlFhrjgWIXId}%P@Y~dt6h3CjilB((|R#a=IQma+NC$s zNNTM!trz`0Pp_BNF1?vX%DAv_c40^9m!*B9`@-La^V~!Bk9OhczyHCT{WqI_^9a0o z1l~LXZytd+kHG)(Bha_oLz~Dtlf3$ew+VK`^>o9_1Xz2XcGTj-4n$f{Z;Pz;n)X}1 zOyIRF;UTn|FBI#*c|yIcjW0A49zywz&gMsSV!lu>YvT*egon_PH}JEk9;?)ON7T#O z_(C(`A(UU^tRK-`GaYg2QS*;l*u0O9W^H_-=%apk2<0a@n+rux87=Pr1}|&l3(bUw zP=0r_xlr_!JfU9J#uu6i525_nW^IpnZr>&RZ# zdMSMa?>c1~N!|bNl+`;4dYe6SLa5QKHtO{oN!|bNn0iJAQ4{CPpPO@hN3+_f*KZ_s z|Gz_4Z!h%b9N*EbHtO{o!DUM0ZXtYb+OSB4b})# z<-aQ*soYvQp|V@~pXD!??<=2Go?edPTKs%`Q+#aP9T!SpFFjnku(V%k)9BUcgVD<9 zm}p%1_weQF%hkuK=ZANOr-l>UKipT{+ud<)0zR?uiv1V6!Y;65%rDKqnVaxUg`M<3 z$H(-i^&R?jJy{#|ZS|BoM|Bt16u(luuXtv$Hy8}Q6+9lC9n1(Sg&!53EL>SQsIW=L ztBn_c<7ySt5zN~nP-8FwELl8v@zS|-j-0;~??v_WE}TE-0HgtyFFT`j%lO(@Dce<0 zTchle^A;SGROlJm(NoGUT7K4|OO7~_;W91}y=T=J3S+Qc->1SWC{K6Fr z&$;;0xyw#JZ@9a*yHwmRQxVN1n?2N#9Z&po>sx(D#RV5#w1UOQ)^?WSTNG5PI8-G&R!VXC&G@}L zHIIyN}X{{>eOGO@_$IZ zb96~1bdGF8$(KNRT$f#V22Vq8t+Tl<9NUR=j>cnDwsFY?M_+vLT3tQ0ZKTd_nI=%D z7j+hSb=b^=+SXD9M>eY}`O5BERmo4ES=&m=&&ZU=s(A7g-T&!Fo_*0}=by3s5;iug zwxv{_)ueLW5}Q{}njTl%LTYc7sXZNI{;0)Ej^wX9>Y__7y=b_nwz-te9toV)NjR$` zM}lXS;>Op;NELX*=9!L=?BXlp)_O#DZ8Is2vzaN~d{AvF#WAQ-#j(|NW>9UC7rEJ> znoz4sah$+ZWGtg6d%KBj8QsZI?5&lhJo@`){?CMxy#C%@i|dk7b#OGBcHL5L6Zu^? zk~%nHsU{#Rx9f&d1;0F11*)2L-ElQ1<AiR{$q3H5as1Xy|0(80Zr*T05jD zx?0sgBG_a+udB^keS_42MWpKBzAL$EX=M@JtFM>ZII5}IFu-OVb@g@41>&gYcGT6^ zN*#36R1>I^*HKqrBUNySQ&pg$a zXN5gib6VXdQvsK>$pVMGzJJt37oK(5^5Jo-Ik9fltZ;It$->K*uQ+>n>}pP^bqGk%18rJg}-3zYR;CK z!!I2nxs;Z}FPG9dQ=BDHbja^sD4ObCd#>gbiQXbbM^7qxVzb`D2@<^}TR7WWI78Mo z_<>WsrF%7JN1U5X*ybmm_Y^oc+2YMkJg3s8!JD3V&Z13&H#_m1L~-I%QYN=J@ti|( z;zJ8m6P z-VXap{sP0F-+1dVZuON?30E$uN|Ht+L{=r7Aycv0#nIT>Wl|iMUAv>5hKrr4YmHIP7Q6bi+6pO(n_GGA z<4a1Ghx`*e|NPVH?%Pwlw0_1?HF0^6bH*mtE|DteMX4&SdQorfEm8@WW2s7LC+})! zLhWLygG-lG9b7XvyL9QTU6k8K-X&jm?Lw)8bCPYN$wk}r+67X4N~So@eX?%Yr#z3m|;<4q!s<94U=M zn<|}i;XSQ(wvV%PL=ZLQQ7i2J!)cYsZ_z(O;y1PO70BMTRTN6VeFZzTS`%`jkXlCt1se&7oObhG2QR%Inko%MJtYTd4c&UTYm}(G{TXr-a zCuK1jcS?7Jrlav#DUB1KDV=j0e2kRGm`at0lGK>$t{p8!aUN1d@nUAvp>b4R@n%D# zyLM!~_>TV1Y(DVD)|S+Dr;4K^rF2iI9U(<=NK!>}463_!cylGq$MpExVkwUElM3I| zEqiN+Nofp#9sHk(#lO7X(p@{WE+|z8Ei@Sby|qQno4_f}8)H4SL!=JIf3}I7LDN$^ zxOo*clWQ3VNflT|sui4xT+0|&TPT$%Ht_d?m?Ydn$>ipB{j3>7{fDXAdIWclq%@csm4$x z>;E&PEc~U*?|rywYIZd?T}q?(q)O+Q-PqbRDUT78Di0+oAMLJ9m7+MHsiMsty1O=| zd2#4&dTBJdE~L{Rk65cp4c!T~Nm3NQaU1`LY7?6O64c4@pmDWsse=BQ zQZ+5xKf7z=>%SoLOuE@+!GzkLQXD5QTfF%?{WvL)4w@h`$uySAPTGyQRnR2EeS6jeZb49bFeKj&=iY~9qEkLIwx2Tyicay1 zW}m)~?dR-)qLcli*&DmD{hTgPbdq0mdJ_ShCQx*uR}_yE(po3>bC!U|^`fYE&)&l0 z`Z-y^<5HC{wsM?dT0iFtOp~c9c&^oYn(Xc8^Z|EF)x=DbcUd~2pK}PzB2_2H>3jP* ziDcV=)#W+xtbWcWxH3t#G5w9)XwU5D+=2_KRBcR(>%5Sf-p@H^N~SUn=DIE{`#INS zPhE?Pj($!xFm+!lUNp*Hbo6tc!9_=p-<_IYbo6tE!D&jB&bjEA+Ry0)t23GMt(QH= z_H(YmfJjwDe@IOR-Tj89jj8^{bTF%U#e!#bx!{t_4#aX zZ%p@OmtuSRcbB3#$9wrF0lzk9cuwfwO{(BbWUDm0dFbumRmx+)WXtCb%31xpNF5BA zOr1A!Dc`?yZi{(Cw7Y-p`&pS5n_bHH^z+ei)8m$N={ByPkB~7oQY|!Fkm={sV~mXn z{%L{9WG~34_Ve*E`g*2x>%KmrpU;wUDpM762G!VpK2XNkNR`iCD0TPOA0wxW=8cVQ z4*Db19DVoQjU(+4DTMe~gsI;ZK!DuSi+bg#OK>D1PR6|7XH6nhnzK{!Qz; zv*nxJBlK?~#WAK+#am2*J^fXwgCUcxlVdf#{gvEi@~oq$znt4l?#PU#3Pxs18E)g# zx5{JtOHvl+U{4&_(d8e!9-F>i8rvV$i;nY)W-qN~^@mavemB-XT~pu41;T`WK5xd! zPSwUl-Rxw~?B}CqTu`LS<7Rc87Zg4HeDsXdn5vwARnXhdC(!6EsVeA<`F_kt(HPdL zI%uY8hvb9kY!fJ+*Hb3;^Jz4$XH!jJu{r;qy`S%NWq&??OHMDI*54r~7v7d?XPwux z(`z?K%_*6h>s}QcSG!)SqEDw9ZSn?ackMbUi({R7(%amtC)BQ$;^=PK;>|2{Z0#B; zk0FyPpS7*=wX3Bl{4iTI>xWZoS4rvYqwRIQd_JvqrBuWj$uzT$D>1qMFIHdesJ>SH z9scjl|K2>J$FQT=Q6H`O2GuK>PU{g3KLtIt#)t=?O`y?TB1 z((2jOldDUr3#-^#x$|D^mqyixGE^2f^WFTWSN3%s>_WBIc3x%m5n zqsj-B_r+fsj4N+n9#eMlVEm`}SMh(v--`b;{#5+o_{sR;_^$Yt_?r0QczJw6e0V%R zo*C~Q?;39tS7KHAN9p&apO$`5db#xZ(#K05#2X6lD!skbSGv4(erZ|hn9?Do{Yz6y zdzN-AZBdG%;pi{XucQBtz7u^V`b_i@yv6WHba!+c-etHXIx9LUIwD#S&5nAb-J`B( zlSqgE4F3@RJX{@qJ^W($@8O5SC&CBAJHl1rmEi^9X?W}5&~R=zE$j|=3bzd7u;5;E zzjZ%$-^DHnpLPH0o^|hW_qyBN^=^eb$DQJibPL@+ZlW9OwsV^~Yu8}6#b4Nd`%U|z z{iJ;!?@T;o@3c4DtL;Vh412si%pPE8*uCs7c57Rko(nJNr}V@6E`5u>R=-7` zsZZ30>-l=7?$NvHPF>YX{X_j;{Y?E(y`sLLKCV89ztDIrPXo;H%YT~AXinxhjpx%R6RmPG46-jjJQD9ln5Mx10ED35NjuAm{FBWQ_d3u@w7 zf{J*iV4xmEtmTX)0nU&_ryc;FE@+6S30mSZK}|eWP!X332I>LCI)$+$z{!&6)VqKu z2^!*wf|huKpe7zKsEEf22I^gibu42^fMX=lsr!LP3mW24f|huspe8O6RKz0$19d-Q z9nM%1V6h}Rbsz9BK|?%L&=MC3YT_Y+ig>VKpzcGggBVK!ER;m2?gbtwXow30Epfh} zCLSQDi1P#kbuVJgWh@CWM-rX72e`kWA?_z=iTes_;y!|kI9o7K_aN3R#*zRtCDEz7 zfinaRak`)-P7~C`se+0)MKDlzBi3Zbk^qw=(W$$D69o;CQ?Mm+4%S3Y!iu<866-F+ zn!s2RpgW0mCvbccOK?v?s|3dhYT{TyMchL$P8Qj2Em)Z2hCTZtt|x3xsNttQfK6_IWmsJ9^&+!nE<7R}bFw*q0d5=)S7YXyHu zx79?tts>HG1NBzZ_d~cXVo6b&ty8xHVYU)WkZx;9&?g zx79?tts>HG19dZE!EF&sYSC<+x(Nugl~{swTT7(dY9ifM5$U#p!gbCM;kJk+wP?0Z ztpdVqC6*xF))MKqnn<@*M7nLDRv{ML7O|uj&DN=vK$xw>5~SN&BHdOK>9&eUw++-v z#Dd!*meiuzI@Je+*-9)yx~(PBZ8ec@tB7>lK=mOO+!nE<7R}bF8-Xxei6uz4wM4qD zCem#ck!~BP8xad`i&#>NX6w`qK$xw>5~SN&BHdOK>9&eUw+++{hy}MrEU87ab?SN` z%vNFv(rqn~ZmWrOTScVX2I_jmg4-gN)S}rsbsZ39E3pLWww6e@)kM0jBGPRGbsb{C zZ4paq(QKW%76`MISb}t0OQhRsBHdOI>9&Eo7O~*Ah$XdXwoY9GgxN|gLAtFa(rq=7 zZmWoN+dy4|Sa4g!l3Fxdr>+LVY$cW;-PRK6wwg${RYbaNpsq$NxGiEyEt;)UR{>$R z5=)S7Yl(DQO{Ci@BHcDnS0NVM7O|uj&DNIxvtR$>X#Z7q>*tBG`5MWovX>I%ey+ai|KqS-oiIS^(mu>|S1mPohN zM7pga(rp8EIby+W5ld>(Y@NCc2(y(~f^=I;q}ysD-BuClwt>0~vEa6dCADa_POSjK zY$etTx&J>d_+0(@fAxpeuUEfR{bcpS)u*bDUkFs>f9qSLat}ReP}p zuw8XbHL7-0UaS1B@@nM=l~=F|@X5-DD^FD(soYb!9lHlyUOB&VTID#b0~}D9Rq3tl zQQ59CrV^Hi%dcT2;MMXE%CD5aSpG!$!{w*SkCg8z-(J1}YXRq%Pb(i+KCFB|d1kq% zyhnLEtOkVfaQxT!xACj-58_wiFUFt1ZiG+9kHq)Hx5qccm&NDB%i`nW!{P(5BG41> z9&a0uiNn%x>93{VmVQ$De(9Cc7fYWgJzshfyB6GCy1jHm>9W#!SQR+7bZF^-(#%p% zY4_5$rOiqX>jHm`ejEKH`hN6s^o8gX(eu%h(ZgIBxIVfpIxkul9UC1Q&5LG4Jy;vq zHrgz5;ZXRO@VDVl!taMKhhMpa8>|p~-@WX<;Qrk`=icYu?e2EBagE?ycd9$a9qQ(}8E$X4o9l9$;%_O2 z>|g9}?2qmD>`V3w_TTMuSSNV5z02NeugCt1=h{>4F?Nxii@>Q;3f_IEf(EmcRWL)2U~UG1fIRh?=RWr~BvKNo+Em4ojVzgGNQ@#Do0 z6`v?RRJ^lzOYz#`rNwiKON&Pr4=K(mPAl$J+_l(Q+ytu!Yl1&ve~2Fi-wnQo4!ib0 zI}Fc5SGGIaVS1hwqUC8JI$mIRG{Z2w5MYOCch2r$hv{}o2xcciKr}lmM6c6Aw7S6V zV20sz2!bT~oU_~8VcMJ$g3Cz|5M9m+(d4ucJua}@n_*ZSf*^?o=j?WNnEs}OU~dux zM0>MBbT=(Ta|`TtW*FXvAV{LKIlHYLqOmC<_?iR((budHZA}Z&)dIV%8G@-H2$E=N z4n1dxj;4fQXc7cOL$gBkGc80r3v8Def}0@-lIUg5cG@9YnG%ANNe~d7%nH%Sv=DtP zu$^WIHijTbqKP@XjUA$gDIr*x1Od^)tPmYc3!N#sf!)RoEoTrUogqoiZf%E77g9o} zB|$*Tgsh~UDx`&$3I%p+Gjs}rAn9aDa&{{_bdrz~I#I|7ogid|ju+BG#|Z^?D>HN~ zgCOY`Npgi}?aBSqAV``c zNv`me9ok<=3GF9jg!UD(Li-45q1i$~;VCmTi$RbyQ<7ZaNjo${NC{0BGD6dYtk6^; zEi^?aC_HI~CNl_(-25wb#BNDC>Upzt0u1h+#FBn6V>3Xj?$n4KsA(d`UqkZxy% z=yqC&ZWk0DHG^|Ej9b`WMKK|pjnBSg2eLUcPVbheZW z3hy?9XE6wp&Xgoqc*qVePlABX5HgZRx3fa0Ntza-+XaP(%plwjN{~debA<=(Ak0pb zfarEch;CEi_*!DBN!b4`2`^(d=B|K07#9GL;bB&Ir-%tPtH!3(@U@!hL2CZU-euqS?8^ zy><|0CqY1TJ0nE5vqE$`Ekw5q3ip~pxE+EZiDu^t_t-(0odf~V?TirJ&I-}(v=H4c zDBNQP;dTguB$}No+-(P8b`k_cw=+U?J1a!D(?WE+pm4Vt9Lpd`+C!?k!d-T7_aq2t zHz6Zwy9!w$x}6r?8|Eikb`8uG&@(g-L8Sz zNe~d-&Ir-%tPtH!3(@U@!tG`a+zvsIM6+{++w2;codf~V?TirJ&I-}(v=H4cDBNb& z!0iwONi;iGxYe$K*+~!(-OdQn?W_>pP7BfPg2Jt44crbvkVLa{g7 z-OdWp?X(cxE-2h$*1+u$1W7bISGd`(f!RqA5Z%rQ(e11d-A)V9?SjJ1W)0j9L6AhV zbA_Ai8kn5~0nzP@5Z%rS(e1Pl-7YBHWY)m#5ClmyJ6Bj`*TC!~2#9WH3ajM)e}3>t za{vER@BUxj02sahKi<3l-`ue`dIY-=&|Vj=xx!BxbHtVS{fZ49USc!O^(Jz z+ec%f5O@854u2K?SNN^)Kf_OlFN9Cwp8u}!mhhVJE#aBriQ(bl{BS1k_&dXDsPILE z-@Bi>A7XEWFSw7p54y+QyWBh6N_T}j-z~%4{vmFTo9f299o-f#!d>BCaj*X)`yKlg z`x*NY`;2|m-eYgG*V#+#S@vYR#2#p8+g`gnZn-wK#=LI+V18~^o3EQMnNQ#@{|WP; zxx=h7SD6dV>E<|dDDLs6nF(fRvz3WWLBFPdtABz!{IBWH>VMVG>i6jT^jq}}dIj$9 zPtix}gY>?7k{+wK)0^?`{!i+cs$YFmy{JBkJsX}>@5a6T&FX4(ky@@!P>ZpH;|$!{ z@1nL*6;&+$y*N;OwfOzw%f-(Z|E>6e;$y}8i*GCTVSmT-il^eP{@~(%#VN%-i#rrI zFNVQT@Mql9|99~1;LE|MgBOCQ&=p7jGktv+yI~MLZ~OWhk%QO}F^VOY6yP}4L=NO2`VeAaBqNsOb0oXy zgFp^tMdVmEL=0w$B?UN~HId^vh(3r|7|@6%`5e$L`T&q4S`j&<4H08nVo3pxYE9&@ z4x$er7REJVNj|S)T=ae*FJlyu*D;2;UlL0S>?^35x{qKGy&th=GnVAfl0+9h3!Eva zh%*EYak`)-P7~C`se(cDEMiSzED11K5?%BRaFU=RP82l6UO`Lj5!A%J1%v1r#M+Co zB)|kobkWnmZb3yHFKCE+3R>bgK}{Sh7(`Da)*g%{0d|)}7d-{sO;8bc6*Ru>GDKbn zS-~4`NMZ?IpTxpTKQ~^-Sdw^c5)1F_+<1+kiUh9~G{ma}E%8c0O}s)di151U2zu!5}&su`XgP32>n#y67n21%irrzMvtVCuoW1 z3Tomxf+k|frVh=uDU^i>JK>m(N~ z0m5u0mLT2M5b3s-NVnBQx@{0GK`gi}Vo5EUt&5HT!fYj$Al=pw>9&?gx79?tZ4e!S zSa4g!l3Fxd7ab0S*-9)yx~(D7Z7q>*tBG{mAUYhe;I@b*wP?03S`38QN-ROTts&BF zEs<`kiFDf_T8vn5Tf~xDG+P&K2ZY&5EJ3=hA<}Ivk#4JrblV`>4zb|2h$XdXwl4f0 z5N3;5M7pgZ(rqn~ZmWrOTWq?FSa91Aga9;K7k(EAvz1tabX!BD+gc*sRuk#ALHJ$7 zg4-gN)S}tC@H;@5t;7))MKqnn|S1hDf)yM7pge(rttATZjd>MJ%aBvvuJ& zfiPQ%B}lh5M7pgd(rq=7ZX1N(L@c;1Vo5EUtqV^F!fYj$Al=pw>9&?gx79?tZ4jQ0 zSa4g!l3Fxd7oG-$*-9)yx~(D7Z7q>*tBG{mAUqAR;I@b*wP?03Tn2>MN-ROTts&BF zEs<`kiFDf_TxN!0wg|P%4%2E~c&Z(S(@G!^oz@7^Xsr-^RtwQ)gYZ-{43|X^B++AC zxYQ2AVkHQO7Hfp)uvUl$tA*&VLAcZm!(I^tNiM;akoq!pq=Y9ShA;67l6 z;g1M{B)X$>@3+G+M+pL=IT|5)qZOhxY9Tsf;NEYBVT=fZB-)~L&)Q+Qq67ia6^#&0 z(F)NMwGb^aaL<}yI3j`|iGJwZGjhJ&GQ@yQvUG>+k>nTj>L($4d9t-~T_abZY77(!urj|92>DUJ9e3`uqRij=mgyI(ni0{{OAf zwb5ImGwbjF&%!hQ-J(vLyn#Q@PPY^6&Uj2HZ{YvU{LcJ@Pu1lO{P&ypn)}RK>u=yM zHAk6)%)a$E@W&X3C+dIFztsKuoBBolNxXsow0>0Ii~H>x^%eR8d;{@#y%_J{&(;%h z$GyGYTt~W~{-y@hPw^K1*KyDNDfNPST0N@nRc}*$cn|*qb-FrU9j+Fr*=nL1tG36R z_$5^+{tfrtKP|2R3$VZ93B|*U3-C7n#Ns&Idv8%J z6$`=Ng5L)}K(5fGTRrdkWBUkEhKY&K?%uJUkECwikUtvND}6GR4s#K zo-bG-ndS>xNM`wh5|T;25R_3Bb9`8kB$?q0Si$ML2@^c33dsat&_Xi57nD#@D2P!t zkgAeYkR($AbqHC|svCr~(Dgz}=sKaGr2AG~D^(@w8c8w{NT&9J6_TmFpoK8CqpFb1 z?S&vhRm|;SL6T%@FPIP{Q+vS*$<$uZLNc`%ln|zNR1HxTb2~nvjwG4d3&w$DYA;wJ znc53lNT&9J5|XJMcS5KtQ+q*@WNI%M3zDh5fEQu{;}&_Xh`7nIO)p}?XlruMKP zNvBJaF`(0gu(sB>YMGE0I#oysEfoq3s-7ZMCFx{IG8%M}kQF*nNDIl-UQj|Zwc~aS zRWY@P2;8?yX7++nAeq?<_*zQeD$MMtDkM{TK?%v!4$nqaOzk0lMBl1pW{;~tPVF|X z06DkYxD3SPj^7x^Ku+&AE&(~eyLcZUCwN8V3~z{>;w_PLye49j$L(Xh542#K4?zep zUlLtB8_0QH5$8#&A2Jvjf+K;g$e_u&-@hspzf{Hj>&=6+{S|VqB zO~jNhv1TC_CVl9V0G#w)JQK)SUlBR&8zSd@OXS3_iJ18%)=b30+>clifOEf#X8<|* zDtiJbp65f=awYX)NB5&*Gg;OomDkVF?x2RKOMF;R6YmlXh_^771b`7qtjR#} z3B(eVVT@RUGRhE3kYhj-*)0PidJ2A{(AA$k# z_lzZpKa)fkPXzu@P!V4dG{i3mTH?nAHSvRj0r7Fhk^m1#qKkWh?+{ePm4b#S=89NS zK)esJ1jU*VOAyY1-zZcc+dV)IHx&zV2pA%Jr6ul|#F7GAB(Ve|#_F+sE78+L*WN&J zRp=5FTZJw`@m1&&Y^P(-?|A<}Iv zk#4JrblaeWzb#wIF~mfgtt;J+STI}BB}lh5M0PbxoFWA@k@gdm@V8|v;kM8vwP?1k zbRQ6AE3pJQN)3^2Yl(DQO{CifCH!sK%5KJzTI|-YbT4qv|IglgK-pH+`MRus&9wI3 zRV5%9B}!HV1rs^vD3ZiPP|1oSL8J>w$~n+2pc2kGXt#m_W?QsXFz3|Tt%zC7ZECx( zSNrz8@AvzbP`k#vZ;bc)b>DZ#c#UH?zAAT_A?q)c z^$4=ui0az-&xLdTc>-sR1)LZwI5uWba`5N+b7iSa=F@Iqq( zFEAEx@G5xzkmYS(YK-xo%6bV|ZamM8ZM=u@#l{3uk_vdPTPt{uF@t9tW4wp5&LYbJ zXS%VC-YGo8m_Te>Kx|t4qBOSaW1WCtMIHhPCpvUQdb+ZGVpRuJ1}5Zmg) zs;~baANT#Aum9h{3IN0P|Fh;#o`2~2|Bmxp%|Cj6xc>k9xnJsSf%nh(`u_*#-Zgi} z+{(Ed=3YIwF!!>#v*u3LIsk{y?Kii}+>Ucw%{_YVk#l363Hbf&FK2%^d;jd0XFoan z!P$4s-Z8sUYXMv{yDRp9j)*S#J z8ozt|mhr0bjpJ*^myIvb`wLDPpD;dRy#ILD@e{^dk2lh~02AE>@Lxy28a+7r=IAS< zPwC9SyGL&st%~{S*6b`i)s3Aap;#uiKB>1MMsAQ|-g; zJz68+w)Wb#ti7^b*v@IEwiDZtS|wn&_QbZ0?g?1C&9<5Phx+UKqxwMo+xltU74V+= z)_PlgU0q&ZSufN|0jJhy>b`&j>TY`5;x=^?-HSY{_b&XQ{JQ+Oe5?Fz`E>bkd5_Lj zyrI0VEa%>UbIWPvndPW*fX-IzRJJXf=X@DVDI#2T)5I>y{je-b#*m)sCUWak>14t>Z*a>cW&}9@5=rnkMgdX zJjlCj(im4)lgD@$`>U&lc;C6n1H3Eyi9Ei$YVz>zvdN>nOD0dHy4X)$HIwQ)H)$TF zuKS9fX{x3ZP1$sUDVdHp#lGr#oV&W|ST~h@M9(l)(=n!Odb%l@jyAUxyBy6H$a zmAyqrn5yY;Q#KuDN~S|ivA4P&;;wEw*iE{LW#P($Ox1LtDVq*3CDZ<<*h^jab5}R* z>!u=;U%8K|n)Wtj(_W@z+S3$!s_P!^>L$;Wx*~C3>4{QTO`a!p*|du(nVx2fJ=FE7 z?&_wexJm19EL{0yQ#C!wlubLEl4&PX?5?g)bXPY$!A%;H3s>%Fs-_)G+4Oi*GHq{) z-PHAQ?&_w;x~b^s{L1Z2)wHcCo3=3})7GZgRb97oS2u0xCcU6#;mR#c)$|xsHf?T7 zrp-*Ti@I*=u5Q}IO-0AvS8i;oCQpRAY|=bPT}_?`b@4QH-Oyd#w1Jz74z;gb-&9TO znX+kJQ!=e%il?gU+V1M6wcMol$u3;^NK-YfY09QGOv$vmDW0OPk8oEv&AUktJuO^0 zXR4-IQ#MUZ$uu^_lht+Pu5Rkxq-VcmrbZHnNVG9udY&E-?<6X=>fWhD`Yx# zHKDp}LUqZ6>f&+gD%JI!n=qa3%UifYrc+lFs>>!+mrSTG9;>cWUEjG0(-j?jULn(| zt7%_THley?LUpm7x=M9@=cYZqnd<$*6*8T=nowOfp}J&3b+N6wN_BnbCQMhh5y^Dw zYC?6{gzAzB)x|dID%JI!n=qYLC0e*brc+lFs>>!+mrSTGwpLfEuJ7E0>B?3jnND3z zs4kmOT{5A%*h*ccy1sK0rYl>DWIA;iW)2n67LglIhgdgzB;h z)g=?Ei!Ibus_Q#9VLClgxp0L{r>-VcmrbZHnNVFkMqQ=4zH<|%E1QdCI(0Rnx@D1MP>aq#dB@?QP&D2$@>pM4LI^7<+aD_~#t|nBMO{gxJ zP+e@Qu2Nm!xhcDY=8g+j$aLyzLUq}M>XHf7#U|=1)%Bg4F2{6bW06d!t|nBMO{gxJ zP+e@S%NbH#-?<6Xm5oF)ow}M(T{fY*WI}bZk-AECedi`jr^T@rE|=-l)r9J@3DqSN zs*6Xft5nx_Zo+isQ6ia6T}`Min^0Xcp}KgKx=M9@=O#>7HWbNp>S{XGluf8EnNVG9 zsIF37-?<6X>FL~s%Vj!sHKDp}LUqZ6>S6XHf7#Us^Ks_Q#9 zVY;%WNTyR)6ROK5RF_PsF4k06sjlzbgz3r}BAHHIO{gxLP+c;ix>!S9rMkXz(_`F0 zPkJw0F4L*&>a*#M-HvhXL(l(zWB!ZtAD@5!{M+XLa{l#tBj79NFPJ||PyZh~f5`k^ z^G}-JZhn*bwdcq4ou2*w#oYJwuE5XE-8c8%xwp=((vknG<}RIk$=nO)o;7#$+yQgD z%{@WK{g0YkW3JBr>+Cl(lZ$G>F z?0U0vvon)FOnx=_p`Q5v!sMfqdnR{J-Z**PWEsc%XX<(XXG{*B>@nGSvh8GJ9qo^J z+W+U{?~cDV{>=EpC z`gT2Z|AAKk{8av6erJC3pH=|8SV!}xKD+|p_IYz1vHwS}^mnaR`}?2#Z#a_o|JQ|A zdF1JlGo9Lcm4}|5G&6ea>A@AF2A|HefgXO5L65(P?ww`fRT_Z3NSk^9DoZECUgZ&} zETe{?vy2{u$})NsD$D3$sH}G=OXE;kZuB@**4u>|h|V&4C@Rb7v8XJg2cxo#9*xR+ zyRtMKmE}eaM`yiF=mDuLqerB&jGlcc%joHcvW%X8DC=#?(gZ|VZuA61S$7LH196to za}Z@2Jqb~kaRXxp*EdFYx3bnF%RgV&jjg*&xQ?-aYa0`|ma&45G-hy3V{~^ZYYnm- zu(}&tcc<_X#sbb86F6tA;H)u&6JvCDDr-#Eo%&i_=EgEvSNJk|foIYSbdl7R8*iWz zrT|bCMi*1u=t`h~b%cCTD#*^up#Gi?@CN*j0geb*r!HLWiHQQ%7J6o)>p{kgjTyXX z2yp9##+azITzvrnZsc>9$y&nmhXCVChXCVCh5+MvLx2j*)h{N%jW2RznLJW>uCapW z7&CabF@a|pW1=#1wf;!@8@SgQZY+~Eg{K=U=*fx#+^X4%1B{-pC_u&LYE4)a;6_ha z6tITSGZqCHJ!MgVQF9gt7}+5)QOUVl(-sA|(bE&c76hn83G=mfTt7SUPlu!-d%VU0pO7YfJYb;c(^gf zyDQ)@2hez^8_Q^w0uC`&P+v5C0`MSX0zI42-S(>#py`ZG*SnXeGYZhkomYE4qX45P zGzu_kM&kgZ=QIjfsQ^uC6yV0;t2|mE^sGh!Mo()LVAQ}k zZWSWf3L@AHBG?2zX$ZJg0U9?7aIc-*SVp%95o`q!Yz7Cxf(SN7wey!jpLx5WcAJB?mV|0)LBv=Lb=lHdZ4ipZ41qZ)^_%(s@tM|fz3XotG;9l#v zv5XE7u5GL!?#Up2P2k|y(E$p;uQcM`zv6=CvdOv@Co)4 z%5(k%#@?90W=vo;#%MnU6au_yc4O(kEKJ4<&KNTo#sqf8=)bIh)g0i)t1fk8>Gk)# z>J`QcqS_3i+61E7=(QKFl4=#;UYNG@`g>j_(>lP2YBPvx6NqY~*Iu|vs#SnD#k8f@ zUbsr8b$}7oW)RgT5YOLOs{n6`X-lua=T$PT1B|FPgQzxvs5W}-g{!1m1$a|T zTYCLHuaapUU_`YUM70S-wb5%YTqV^iz?)*)((fyjX&qohwHZXU2}HHg@2dc*Rsr4= z)0Tc8p-k%lBdX0Hs!brOjeZ{mNVN*^rkJ+$dkbY+2N+Rp22pJSQEl{lD?qAMfH%do zrPmePt7KXS7*TBoQEdWIZS;F7K&n-MH^sE2*JawPWLgIpQEdiMZ36f82GQ@S0I601 z-W1c8ep8`L>i{FF%^<2xAgYaiQw2!13h<_wwv-2jGOYqYRGUFmn?O_>P^NW&5!Gf8)g}T?(>lP2YBPvx6NqY~d{+TdtpdC$rY+?=LYdY9MpTirgeZ3)n*XYCJ@zzF3&DpCDkgx zn_}8h9uUg34lrh822pJSQEik56d=_qz+}^QMdj`)iMH#i=t_&W%O-oaOD1c!i-R9t z|NpUpcydYW@GCbd7&;{r}Sc%hdY+AJ7Vai|hZN-Jd+Q z{{N=^I#cWa|9$)1)cXIgZkJB2|G!&%!qocz|5$%Awf_H`wXWad`u``?!|USu|8u&g zzqtPYN6Y)B*8e}hoKY6n|KCPuM;F)s|4#nu)cXIg(Q1B+>;LbUpEkAr{~yz@r`G>} zTl&kXvjWdc$EL;g|JP3XRzJM{|7Ud#e{uc)S7;5t#r6MpoY`_}{r?}w15@k&-yGM) z<#pj2DtXpR4i>JVl84Vw>1S#dweN$N~<;rpZmArNL3#sG?94mE6ChH=vYfkWwDq z{mN1)SC)THC2!p~ga^A<0aeMhA3;ia1u5kjq?AYZ4P~j6E6V{?^45J_s7mfEBc(in zLn#M`QVvqeqx-tDRLYg*UaI8YkAE*5N;ya=Pavhdf|T+M4yC;Ndu36|X{405?(dXE zDK8+UJb{$*3R225s8a6z_;<=uE!XFA0HwTjUlUTw3pkW=kWyYjm2&S#Z@cY~^)+Rw zmMhDRl=9YnRY)l>Af-HkD&^jf-hf)3L27w)UsaZBxw8CoN_p%4R!Au?ph~&-qg$!v z6{MDDkXjzy-zrPBTv^_fQr^0+2vy3xAC1)V1P-+v9BMg8EsyRi%2F*?mV2p`dq3*v z;+mnBgVgc_Qp+nyEzjUk%R3#OTth9Vky_rmFDZ*!UO-vTzoT2J+1y#$vAHA)Mxw5{fELC%5sqxjW=K3AKAaps`-^=KF zuFqwBxv_#58#8#3F}g35g;&eA%JQbjwsoHuO1922V%r2_+X`aa3}V~pKCdjntO-O(3?dAhyjQwvFyn%93rBntO-O(3?dAhyjQwvFz?%93rBkoR$1(fzfu zWLssq7qV^Ldxes%vy9j_f!MZ!*fxXMHoEsJOSV;(dm-D_y+31^wHHji|8L8-;ne&89;jcQdjH>b_42y-{y(oi zu=xHzuRgH&{y(oiu=xHzU;STv|DUh^FTVfJSN|8^|L3d!r%hk|pL+k_57RfM-v9Ty zv~24Ae+Q>M(!=lnoB1Cz|1|afzjtfRfyMX#J%8qzQ}6%VfED~7djH>-;^T|&|I;Pc zhySY!*HXmO_*NlByn+<*462B09y``GscTimbzRPzQpDT%79mBvfE4irQp77r5znBC zxU+6ima4e296%9ov)XOA#+1MLdBN@d{GJGpHi2tdVNn zwW{K}Eam`;cpIryT}u%!AVoZZ6!8jD#51TO?kv^1YgNUSv(+r-&DjBA!5s zcm*lq8B`H>mTKK{RdHoGfFj;TDpkuV;svCLCy*juL5g?=Rm7d8TDM$PTv-mFh_{hS z)pCk>0V(1Mq=;9LBA!7Nac8O4Emsv+mIEl_ZKP7QoFZO8ig*Gk;uWNbXHZ4lS*mr* zRmGL%0E&1UsZ=eeh!>C|o z?sQ!)+v;;U0NJ+w0ik58ED+l!5ZhJ|+h!2kMz3>{%Vk?#BXa<R<|AtVq zb(Rs^CJ@_J5Zh)D+eWW*lFMaVWw{r!ZT;7UlC86h*fxRKwu0C;gV;8Dos(QH+bYYw zkZtQv7fQCyGGf~VV%rL0+YDmc=ucOcY^yByLbk1cp-{4QmJ!<~5ZhJ|+h!2kM*l)( z$+pUJFJ#;L7YHR=XBn|=GA_fm6~wj~#J17Dpe!ttZI$Isk!|arFO+PZWyH1##I_a0 zwi(2>(LY~VvaPb*3)!~*G@)ecEF-o}AhxX_w#^{6js7%c$+pUJFJ#;LQ-zYPvy9j_ zf!MZ!*fxXMHu_VQCEF^?y^w9|PZ3JC&N5=#1Y+9?V%rR2+vrbGmTapm_d>R8CfRTI?IS{6Nqgqh;1{7ZKJ6UEt74Pd-RTR$1ntO-O(3?dAhylMYp`wjQK4&OTV=Ts*)}enO1940 zOs&{9f!Maz&1T2jbQ{Fw!}0(3=KpT$`2U9aS4|!NA27e`)bam+oBQq5@&DrW{|o2N zp1S`3*tt!ouK#=ezt7KpWa{{T@%sOPv%5`Q|Nqy?KTci$f9K@QQ&;YPHu}!gmHQRE zpYM{XBlpEC_qqS$)Rp`9_ivlJa(`C;ys0bqoA6wIH+AHGUwf~f%75s{{Uz;%Q%CMw zwMR`IxqqvEW$MU%@yh-2^{}Zc_g*(}@yfl|4ZKUw;x8V#FJ8IdTKDZQUb**u`=8Dq znmTe{ymG&9e(Kbf`#+>#O;q&nHNu8 zx!+-Ci>WL3KVqf8Pb?m}$L0S%|0@fBP8IL|xi0+qP{q4{5)M@y9I7}tRB>>q;^0ul zyMIy^Rh-75ig&+L)=saH!(oP{qNaig&+N7FC?ap^A6EQPxn!!J&$S zLlp;yDh>`+y!(x^sNysZRlNJPvW6-S4pkf+syH}Qad4>O-LI8J6{qo_;qUb;Werul zGY(Z89I80DpSR86P{q4nDT^vj<50!BUn*dz;^0ul!J&$SLlp;yD&GB4SyXWvhbrFv zgR+Jy4h~fu9I7}tRB>>q;@v+eiz-gzP{q4nC~K(V;84ZEp^Ae;6$ghZ-u*&ZRB;-I zD&GBESwj^Ehbj&ZRUF)A_`+92}}RI8^cOr^=#=(>PS|?kCC`syH}Qad4>O;84ZE zp^A4uQ5IF4#-WOLKUUUI#lfM9gF_Vuhbj&ZRlNJLvZ&%T4pqGSk+P&l|GkVu6$ghZ z4h~fuEZ#P{A1R9}PUBF;y9X68RB>>q;^0ul!J uN$g(_h4DLjw(*$P{q3+>gPih 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 From de2cb2194e5b4b55b33b2f2030d89666ce3bfd45 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Mon, 23 Mar 2026 16:02:45 +0900 Subject: [PATCH 11/11] =?UTF-8?q?feat:=20=EB=93=9C=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EA=B3=B5=ED=86=B5=20=EB=B3=B4=EC=8A=A4=20BT=20=ED=94=84?= =?UTF-8?q?=EB=A0=88=EC=9E=84=EC=9B=8C=ED=81=AC=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/_Game/AI/BT_Drog.asset | 4362 +++++++++-------- .../_Game/Animations/Anim_Drog_스윙.fbx.meta | 7 + .../Animations/Anim_Drog_오른손치기2.fbx.meta | 14 +- .../_Game/Animations/Anim_Drog_점프.fbx.meta | 7 + .../Patterns/Data_Pattern_Drog_내려찍기.asset | 20 + .../Data_Pattern_Drog_내려찍기.asset.meta | 8 + .../Data_Pattern_Drog_약2타-스윙.asset | 3 - .../Patterns/Data_Pattern_Drog_점프.asset | 2 +- .../Skills/Data_Skill_Drog_다운추가타.asset | 1 + .../Data/Skills/Data_Skill_Drog_스윙.asset | 1 + .../Skills/Data_Skill_Drog_오른손치기2.asset | 2 +- .../Skills/Data_Skill_Drog_점프착지.asset | 1 + ...a_SkillEffect_Drog_다운추가타_1_넉백.asset | 28 + ...llEffect_Drog_다운추가타_1_넉백.asset.meta | 8 + .../Data_SkillEffect_Drog_스윙_1_넉백.asset | 28 + ...ta_SkillEffect_Drog_스윙_1_넉백.asset.meta | 8 + ..._SkillEffect_Drog_오른손치기2_1_다운.asset | 2 +- ...lEffect_Drog_오른손치기2_1_다운.asset.meta | 2 +- .../Data_SkillEffect_Drog_점프_1_넉백.asset | 28 + ...ta_SkillEffect_Drog_점프_1_넉백.asset.meta | 8 + .../Prefabs/Bosses/Prefab_Boss_Drog.prefab | 6 +- .../Actions/BossPatternActionBase.cs | 249 + .../Actions/BossPatternActionBase.cs.meta | 2 + .../CheckMobilityPatternReadyAction.cs | 20 + .../CheckMobilityPatternReadyAction.cs.meta | 2 + .../Actions/CheckPatternReadyActionBase.cs | 31 + .../CheckPatternReadyActionBase.cs.meta | 2 + .../Actions/CheckPrimaryPatternReadyAction.cs | 20 + .../CheckPrimaryPatternReadyAction.cs.meta | 2 + .../Actions/CheckPunishPatternReadyAction.cs | 20 + .../CheckPunishPatternReadyAction.cs.meta | 2 + .../CheckSecondaryPatternReadyAction.cs | 20 + .../CheckSecondaryPatternReadyAction.cs.meta | 2 + .../CheckSecondaryPatternTurnAction.cs | 26 + .../CheckSecondaryPatternTurnAction.cs.meta | 2 + .../Actions/CheckTargetInAttackRangeAction.cs | 35 + .../CheckTargetInAttackRangeAction.cs.meta | 2 + .../Actions/RefreshPrimaryTargetAction.cs | 46 + .../RefreshPrimaryTargetAction.cs.meta | 2 + .../SelectNearestDownedTargetAction.cs | 93 + .../SelectNearestDownedTargetAction.cs.meta | 2 + .../Actions/SelectTargetByDistanceAction.cs | 172 + .../SelectTargetByDistanceAction.cs.meta | 2 + .../Actions/UseMobilityPatternAction.cs | 20 + .../Actions/UseMobilityPatternAction.cs.meta | 2 + .../Actions/UsePatternAction.cs | 126 +- .../Actions/UsePatternRoleActionBase.cs | 57 + .../Actions/UsePatternRoleActionBase.cs.meta | 2 + .../Actions/UsePrimaryPatternAction.cs | 20 + .../Actions/UsePrimaryPatternAction.cs.meta | 2 + .../Actions/UsePunishPatternAction.cs | 20 + .../Actions/UsePunishPatternAction.cs.meta | 2 + .../Actions/UseSecondaryPatternAction.cs | 20 + .../Actions/UseSecondaryPatternAction.cs.meta | 2 + .../Actions/ValidateTargetAction.cs | 33 + .../Actions/ValidateTargetAction.cs.meta | 2 + .../RebuildDrogBehaviorAuthoringGraph.cs | 304 ++ .../RebuildDrogBehaviorAuthoringGraph.cs.meta | 2 + .../Enemy/BossCombatBehaviorContext.cs | 520 ++ .../Enemy/BossCombatBehaviorContext.cs.meta | 2 + .../Scripts/Enemy/BossCombatPatternRole.cs | 27 + .../Enemy/BossCombatPatternRole.cs.meta | 2 + Assets/_Game/Scripts/Enemy/BossEnemy.cs | 6 +- .../Scripts/Enemy/DrogPatternController.cs | 404 +- Tools/Reload-Obsidian.ps1 | 13 + 65 files changed, 4514 insertions(+), 2374 deletions(-) create mode 100644 Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset create mode 100644 Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset.meta create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset create mode 100644 Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs.meta create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs create mode 100644 Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs.meta create mode 100644 Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs create mode 100644 Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs.meta create mode 100644 Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs create mode 100644 Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs.meta create mode 100644 Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs create mode 100644 Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs.meta create mode 100644 Tools/Reload-Obsidian.ps1 diff --git a/Assets/_Game/AI/BT_Drog.asset b/Assets/_Game/AI/BT_Drog.asset index c493d70f..62e28e89 100644 --- a/Assets/_Game/AI/BT_Drog.asset +++ b/Assets/_Game/AI/BT_Drog.asset @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &-6758363554468061369 MonoBehaviour: @@ -134,8 +134,8 @@ MonoBehaviour: rid: 8805855836547055694 BlackboardGroupReferences: [] Root: - rid: 8805856000049152583 - m_VersionTimestamp: 639094532463569056 + rid: 8805856113439801676 + m_VersionTimestamp: 639098784865219134 - rid: 8805855836547055694 type: {class: BlackboardReference, ns: Unity.Behavior, asm: Unity.Behavior} data: @@ -200,138 +200,15 @@ MonoBehaviour: m_Value1: 14990413519379198129 Name: Die m_Value: 0 - - rid: 8805856000049152583 - type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 8361680655506702021 - m_Value1: 11075116708293476273 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: -2 - m_Child: - rid: 8805856000049152584 - Repeat: 0 - AllowMultipleRepeatsPerTick: 0 - - rid: 8805856000049152584 - type: {class: RepeaterModifier, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 16903089648015682040 - m_Value1: 5621269674286214316 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152583 - m_Child: - rid: 8805856000049152585 - m_AllowMultipleRepeatsPerTick: 0 - - rid: 8805856000049152585 - type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 3882872508468950798 - m_Value1: 3938133446346283639 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152584 - m_Children: - - rid: 8805856000049152586 - m_RegisteredObservers: [] - m_Conditions: - - rid: 8805856000049152587 - m_RequiresAllConditions: 0 - True: - rid: -2 - False: - rid: 8805856000049152586 - m_CurrentChild: - rid: -2 - m_ObserverType: 0 - - rid: 8805856000049152586 - type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 2112550037797404360 - m_Value1: 3268971171652514817 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152585 - m_Children: - - rid: 8805856000049152588 - - rid: 8805856000049152589 - m_RegisteredObservers: [] - - rid: 8805856000049152587 - type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior} - data: - Graph: - rid: 8805855836547055693 - Variable: - rid: 8805856000049152400 - Operator: - rid: 8805856000049152590 - ComparisonValue: - rid: 8805856000049152591 - - rid: 8805856000049152588 - type: {class: SetTargetInRangeAction, ns: , asm: Colosseum.Game} - data: - ID: - m_Value0: 2112550037797404360 - m_Value1: 3268971171652514817 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152586 - Target: - rid: 8805856000049152397 - Tag: - rid: 8805856000049152592 - Range: - rid: 8805856000049152593 - - rid: 8805856000049152589 - type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 6087481783018872809 - m_Value1: 15765389902485577860 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152586 - m_Children: - - rid: 8805856000049152594 - - rid: 8805856000049152595 - m_RegisteredObservers: [] - m_Conditions: - - rid: 8805856000049152596 - m_RequiresAllConditions: 0 - True: - rid: 8805856000049152594 - False: - rid: 8805856000049152595 - m_CurrentChild: - rid: -2 - m_ObserverType: 0 - - rid: 8805856000049152590 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} + - rid: 8805856113439801515 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: m_Value0: 0 m_Value1: 0 Name: m_Value: 0 - - rid: 8805856000049152591 - type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805856000049152592 + - rid: 8805856113439801516 type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: @@ -339,252 +216,490 @@ MonoBehaviour: m_Value1: 0 Name: m_Value: Player - - rid: 8805856000049152593 + - rid: 8805856113439801517 type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: m_Value0: 0 m_Value1: 0 Name: - m_Value: 10 - - rid: 8805856000049152594 - type: {class: BranchingConditionComposite, ns: Unity.Behavior, asm: Unity.Behavior} + m_Value: 0 + - rid: 8805856113439801518 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 20 + - rid: 8805856113439801519 + type: {class: 'BlackboardVariable`1[[DistanceTargetSelectionMode, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 1 + - rid: 8805856113439801520 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 0 + - rid: 8805856113439801521 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 2 + - rid: 8805856113439801676 + type: {class: Start, ns: Unity.Behavior, asm: Unity.Behavior} data: ID: - m_Value0: 10925304658634853314 - m_Value1: 14003116682958237093 + m_Value0: 3944491945985234464 + m_Value1: 10075432118744806958 Graph: rid: 8805855836547055693 m_Parent: - rid: 8805856000049152589 - m_Children: - - rid: 8805856000049152597 - - rid: 8805856000049152598 - m_RegisteredObservers: [] - m_Conditions: - - rid: 8805856000049152599 - m_RequiresAllConditions: 0 - True: - rid: 8805856000049152597 - False: - rid: 8805856000049152598 - m_CurrentChild: rid: -2 - m_ObserverType: 0 - - rid: 8805856000049152595 - type: {class: WaitAction, ns: , asm: Colosseum.Game} + m_Child: + rid: 8805856113439801677 + Repeat: 1 + AllowMultipleRepeatsPerTick: 0 + - rid: 8805856113439801677 + type: {class: RepeaterModifier, ns: Unity.Behavior, asm: Unity.Behavior} data: ID: - m_Value0: 7100545047213284048 - m_Value1: 17094481857695181652 + m_Value0: 18202383970471888822 + m_Value1: 5919000831638527321 Graph: rid: 8805855836547055693 m_Parent: - rid: 8805856000049152589 - Duration: - rid: 8805856000049152600 - - rid: 8805856000049152596 - type: {class: VariableComparisonCondition, ns: Unity.Behavior, asm: Unity.Behavior} - data: - Graph: - rid: 8805855836547055693 - Variable: - rid: 8805856000049152397 - Operator: - rid: 8805856000049152601 - ComparisonValue: - rid: 8805856000049152602 - - rid: 8805856000049152597 - type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 2656906456090040103 - m_Value1: 5313501299737419023 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152594 - m_Children: - - rid: 8805856000049152603 - - rid: 8805856000049152604 - m_RegisteredObservers: [] - - rid: 8805856000049152598 - type: {class: ParallelAllComposite, ns: Unity.Behavior, asm: Unity.Behavior} - data: - ID: - m_Value0: 14249649058231311876 - m_Value1: 11772280117554626987 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152594 - m_Children: - - rid: 8805856000049152605 - - rid: 8805856000049152606 - m_RegisteredObservers: [] - - rid: 8805856000049152599 - type: {class: CheckDistanceCondition, ns: Unity.Behavior, asm: Unity.Behavior} - data: - Graph: - rid: 8805855836547055693 - Transform: - rid: 8805856000049152607 - Target: - rid: 8805856000049152608 - Operator: - rid: 8805856000049152609 - Threshold: - rid: 8805856000049152396 - - rid: 8805856000049152600 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805856000049152601 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805856000049152602 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805856000049152603 - type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game} - data: - ID: - m_Value0: 2656906456090040103 - m_Value1: 5313501299737419023 - Graph: - rid: 8805855836547055693 - m_Parent: - rid: 8805856000049152597 - Target: - rid: 8805856000049152397 - RotationSpeed: - rid: 8805856000049152610 - AngleThreshold: - rid: 8805856000049152611 - - rid: 8805856000049152604 + rid: 8805856113439801676 + m_Child: + rid: 8805856113439801678 + m_AllowMultipleRepeatsPerTick: 0 + - rid: 8805856113439801678 type: {class: SelectorComposite, ns: Unity.Behavior, asm: Unity.Behavior} data: ID: - m_Value0: 1213596326002826456 - m_Value1: 9846416129968350328 + m_Value0: 398178747935607711 + m_Value1: 7574567307776651754 Graph: rid: 8805855836547055693 m_Parent: - rid: 8805856000049152597 - m_Children: [] + rid: 8805856113439801677 + m_Children: + - rid: 8805856113439801679 + - rid: 8805856113439801680 + - rid: 8805856113439801681 + - rid: 8805856113439801682 + - rid: 8805856113439801683 + - rid: 8805856113439801684 m_RegisteredObservers: [] - - rid: 8805856000049152605 - type: {class: RotateToTargetAction, ns: , asm: Colosseum.Game} + - rid: 8805856113439801679 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} data: ID: - m_Value0: 17771351983187136722 - m_Value1: 7918239022991775575 + m_Value0: 10441495572728319624 + m_Value1: 18145710329216171556 Graph: rid: 8805855836547055693 m_Parent: - rid: 8805856000049152598 - Target: - rid: 8805856000049152397 - RotationSpeed: - rid: 8805856000049152612 - AngleThreshold: - rid: 8805856000049152613 - - rid: 8805856000049152606 - type: {class: UsePatternAction, ns: , asm: Colosseum.Game} + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801685 + - rid: 8805856113439801686 + - rid: 8805856113439801687 + m_RegisteredObservers: [] + - rid: 8805856113439801680 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} data: ID: - m_Value0: 6072905976649188714 - m_Value1: 6639982183309942236 + m_Value0: 6168839543956477089 + m_Value1: 11275182414090957339 Graph: rid: 8805855836547055693 m_Parent: - rid: 8805856000049152598 - Pattern: - rid: 8805856000049152614 + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801688 + - rid: 8805856113439801689 + - rid: 8805856113439801690 + m_RegisteredObservers: [] + - rid: 8805856113439801681 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} + data: + ID: + m_Value0: 16509142761903036207 + m_Value1: 11797946855901307058 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801691 + - rid: 8805856113439801692 + - rid: 8805856113439801693 + - rid: 8805856113439801694 + - rid: 8805856113439801695 + - rid: 8805856113439801696 + m_RegisteredObservers: [] + - rid: 8805856113439801682 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} + data: + ID: + m_Value0: 12671461730204450349 + m_Value1: 15265453094671554164 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801697 + - rid: 8805856113439801698 + - rid: 8805856113439801699 + - rid: 8805856113439801700 + - rid: 8805856113439801701 + m_RegisteredObservers: [] + - rid: 8805856113439801683 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} + data: + ID: + m_Value0: 18027270346692850458 + m_Value1: 8457381046822106713 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801702 + - rid: 8805856113439801703 + - rid: 8805856113439801704 + - rid: 8805856113439801705 + - rid: 8805856113439801706 + m_RegisteredObservers: [] + - rid: 8805856113439801684 + type: {class: SequenceComposite, ns: Unity.Behavior, asm: Unity.Behavior} + data: + ID: + m_Value0: 8713107049279116071 + m_Value1: 9769549314833514694 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801678 + m_Children: + - rid: 8805856113439801707 + - rid: 8805856113439801708 + - rid: 8805856113439801709 + m_RegisteredObservers: [] + - rid: 8805856113439801685 + type: {class: SelectNearestDownedTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 13798264256640470984 + m_Value1: 9044784723309059020 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801679 Target: rid: 8805856000049152397 - - rid: 8805856000049152607 - type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + SearchRadius: + rid: 8805856113439801515 + - rid: 8805856113439801686 + type: {class: CheckPunishPatternReadyAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - m_LinkedVariable: - rid: 8805856000049152395 - - rid: 8805856000049152608 - type: {class: 'GameObjectToComponentBlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 17028571991082717895 + m_Value1: 7352148230105113793 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801679 + - rid: 8805856113439801687 + type: {class: UsePunishPatternAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - m_LinkedVariable: + ID: + m_Value0: 8069975285165892673 + m_Value1: 6614076379062333819 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801679 + Target: rid: 8805856000049152397 - - rid: 8805856000049152609 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} + - rid: 8805856113439801688 + type: {class: SelectTargetByDistanceAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805856000049152610 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 2541997251605238282 + m_Value1: 17207302682821541222 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801680 + Target: + rid: 8805856000049152397 + Tag: + rid: 8805856113439801516 + MinRange: + rid: 8805856113439801517 + MaxRange: + rid: 8805856113439801518 + SelectionMode: + rid: 8805856113439801519 + - rid: 8805856113439801689 + type: {class: CheckMobilityPatternReadyAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 10 - - rid: 8805856000049152611 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 1168026670980482786 + m_Value1: 10696105289007618014 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801680 + - rid: 8805856113439801690 + type: {class: UseMobilityPatternAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805856000049152612 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 5133138069850922554 + m_Value1: 11111217626666621090 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801680 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801691 + type: {class: RefreshPrimaryTargetAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 10 - - rid: 8805856000049152613 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 1336661570389436292 + m_Value1: 14184982584268272727 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801692 + type: {class: ValidateTargetAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805856000049152614 - type: {class: 'BlackboardVariable`1[[Colosseum.AI.BossPatternData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior} + ID: + m_Value0: 1159320695782321619 + m_Value1: 1455929843613418813 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801693 + type: {class: CheckTargetInAttackRangeAction, ns: , asm: Colosseum.Game} data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2} + ID: + m_Value0: 12573652026917026955 + m_Value1: 5552834901857357329 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801694 + type: {class: CheckSecondaryPatternTurnAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 3814268768543398152 + m_Value1: 2609183473855007568 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + - rid: 8805856113439801695 + type: {class: CheckSecondaryPatternReadyAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 7006308348220467330 + m_Value1: 11049550376158880254 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + - rid: 8805856113439801696 + type: {class: UseSecondaryPatternAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 9822364172009382639 + m_Value1: 11871502844696962604 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801681 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801697 + type: {class: RefreshPrimaryTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 14858217615681981828 + m_Value1: 8818105421142067472 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801682 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801698 + type: {class: ValidateTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 109114609900411872 + m_Value1: 8926719061613283666 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801682 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801699 + type: {class: CheckTargetInAttackRangeAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 3749161462120118103 + m_Value1: 2503175866245522430 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801682 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801700 + type: {class: CheckPrimaryPatternReadyAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 1856011962074969088 + m_Value1: 6243725556440796836 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801682 + - rid: 8805856113439801701 + type: {class: UsePrimaryPatternAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 7186990809598279497 + m_Value1: 3420770028979615744 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801682 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801702 + type: {class: RefreshPrimaryTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 4278553797089195640 + m_Value1: 9252751663660805834 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801683 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801703 + type: {class: ValidateTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 17817043910916039977 + m_Value1: 11383935187233238739 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801683 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801704 + type: {class: CheckTargetInAttackRangeAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 10974017013180213996 + m_Value1: 598595675438468009 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801683 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801705 + type: {class: CheckSecondaryPatternReadyAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 15652672805528451484 + m_Value1: 12680400870830473934 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801683 + - rid: 8805856113439801706 + type: {class: UseSecondaryPatternAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 11262280553926999856 + m_Value1: 9907295714702289646 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801683 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801707 + type: {class: RefreshPrimaryTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 14996338139681041873 + m_Value1: 11900659897878691184 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801684 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801708 + type: {class: ValidateTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 17175457747312659229 + m_Value1: 777420747333904416 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801684 + Target: + rid: 8805856000049152397 + - rid: 8805856113439801709 + type: {class: ChaseTargetAction, ns: , asm: Colosseum.Game} + data: + ID: + m_Value0: 15294844399589336592 + m_Value1: 16330539450226202290 + Graph: + rid: 8805855836547055693 + m_Parent: + rid: 8805856113439801684 + Target: + rid: 8805856000049152397 + Speed: + rid: 8805856113439801520 + StopDistance: + rid: 8805856113439801521 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -600,29 +715,41 @@ MonoBehaviour: Blackboard: {fileID: -6591390698989283165} m_Description: m_Nodes: - - rid: 8805855836547055698 - - rid: 8805855841097089291 - - rid: 8805855841097089292 - - rid: 8805855841097089293 - - rid: 8805855841097089335 - - rid: 8805855841097089353 - - rid: 8805855841097089467 - - rid: 8805855841097089544 - - rid: 8805855841097089648 - - rid: 8805855841097089764 - - rid: 8805855841097089765 - - rid: 8805855841097089766 - - rid: 8805855846311395415 - - rid: 8805855941168464148 - - rid: 8805855941168464149 - - rid: 8805855941168464150 - - rid: 8805855941168464612 - - rid: 8805855948962791632 - - rid: 8805855956374126770 - - rid: 8805855974927368268 - - rid: 8805856000049152462 - - rid: 8805856000049152525 - m_VersionTimestamp: 639094532463569056 + - rid: 8805856113439801522 + - rid: 8805856113439801523 + - rid: 8805856113439801524 + - rid: 8805856113439801525 + - rid: 8805856113439801526 + - rid: 8805856113439801527 + - rid: 8805856113439801528 + - rid: 8805856113439801529 + - rid: 8805856113439801530 + - rid: 8805856113439801531 + - rid: 8805856113439801532 + - rid: 8805856113439801533 + - rid: 8805856113439801534 + - rid: 8805856113439801535 + - rid: 8805856113439801536 + - rid: 8805856113439801537 + - rid: 8805856113439801538 + - rid: 8805856113439801539 + - rid: 8805856113439801540 + - rid: 8805856113439801541 + - rid: 8805856113439801542 + - rid: 8805856113439801543 + - rid: 8805856113439801544 + - rid: 8805856113439801545 + - rid: 8805856113439801546 + - rid: 8805856113439801547 + - rid: 8805856113439801548 + - rid: 8805856113439801549 + - rid: 8805856113439801550 + - rid: 8805856113439801551 + - rid: 8805856113439801552 + - rid: 8805856113439801553 + - rid: 8805856113439801554 + - rid: 8805856113439801555 + m_VersionTimestamp: 639098784865219134 m_SerializedVersion: 2 m_DebugInfo: {fileID: -6758363554468061369} m_RuntimeGraph: {fileID: -3933356984444701103} @@ -644,33 +771,252 @@ MonoBehaviour: Variables: [] NamedChildren: [] IsPlaceholder: 0 - - Name: Conditional Branch + - Name: Repeat Story: - RuntimeTypeString: Unity.Behavior.BranchingConditionComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + RuntimeTypeString: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null RuntimeTypeID: - m_Value0: 12334964803190848789 - m_Value1: 14608808926743427008 + m_Value0: 3696095273264312494 + m_Value1: 14191201703811421854 Variables: [] - NamedChildren: - - True - - False + NamedChildren: [] IsPlaceholder: 0 - - Name: Wait - Story: "\uB300\uAE30" - RuntimeTypeString: WaitAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, - PublicKeyToken=null + - Name: Try In Order + Story: + RuntimeTypeString: Unity.Behavior.SelectorComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null RuntimeTypeID: - m_Value0: 2068857283001694323 - m_Value1: 11359859023677000345 + m_Value0: 11477120919463386923 + m_Value1: 7730102824742023565 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Sequence + Story: + RuntimeTypeString: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Select Nearest Downed Target + Story: "[SearchRadius] \uBC18\uACBD \uB0B4 \uAC00\uC7A5 \uAC00\uAE4C\uC6B4 \uB2E4\uC6B4 + \uB300\uC0C1\uC744 [Target]\uC73C\uB85C \uC120\uD0DD" + RuntimeTypeString: SelectNearestDownedTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 3479009025465913838 + m_Value1: 8189696432825349292 Variables: - - Name: Duration + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + - Name: SearchRadius Type: m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Tooltip: NamedChildren: [] IsPlaceholder: 0 + - Name: Check Punish Pattern Ready + Story: "\uC9D5\uBC8C \uD328\uD134 \uC900\uBE44 \uC5EC\uBD80 \uD655\uC778" + RuntimeTypeString: CheckPunishPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 17241132588797744616 + m_Value1: 12089745580882483368 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Use Punish Pattern + Story: "\uC9D5\uBC8C \uD328\uD134 \uC2E4\uD589" + RuntimeTypeString: UsePunishPatternAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + RuntimeTypeID: + m_Value0: 15871296011671630677 + m_Value1: 8078034232868777638 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Select Target By Distance + Story: "[Tag] \uB300\uC0C1 \uC911 [MinRange] \uC774\uC0C1 [MaxRange] \uC774\uD558 + \uBC94\uC704\uC5D0\uC11C [SelectionMode] \uBC29\uC2DD\uC73C\uB85C [Target] + \uC120\uD0DD" + RuntimeTypeString: SelectTargetByDistanceAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 17676628481821338191 + m_Value1: 4731651210062498751 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + - Name: Tag + Type: + m_SerializableType: System.String, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + Tooltip: + - Name: MinRange + Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + Tooltip: + - Name: MaxRange + Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + Tooltip: + - Name: SelectionMode + Type: + m_SerializableType: DistanceTargetSelectionMode, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Check Mobility Pattern Ready + Story: "\uAE30\uB3D9 \uD328\uD134 \uC900\uBE44 \uC5EC\uBD80 \uD655\uC778" + RuntimeTypeString: CheckMobilityPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 8450458953142456155 + m_Value1: 940103638269631644 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Use Mobility Pattern + Story: "\uAE30\uB3D9 \uD328\uD134 \uC2E4\uD589" + RuntimeTypeString: UseMobilityPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 10758284640051141051 + m_Value1: 14733138854283253894 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Refresh Primary Target + Story: "\uBCF4\uC2A4 \uC8FC \uB300\uC0C1\uC744 [Target]\uC73C\uB85C \uAC31\uC2E0" + RuntimeTypeString: RefreshPrimaryTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 1676760785695660983 + m_Value1: 3474893727400520085 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Validate Target + Story: "[Target]\uC774 \uC0B4\uC544 \uC788\uB294 \uC720\uD6A8 \uB300\uC0C1\uC778\uC9C0 + \uD655\uC778" + RuntimeTypeString: ValidateTargetAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + RuntimeTypeID: + m_Value0: 1389171756588788969 + m_Value1: 2283983672959160206 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Check Target In Attack Range + Story: "[Target]\uC774 \uBCF4\uC2A4 \uACF5\uACA9 \uC0AC\uAC70\uB9AC \uC548\uC5D0 + \uC788\uB294\uC9C0 \uD655\uC778" + RuntimeTypeString: CheckTargetInAttackRangeAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 17746747867388412438 + m_Value1: 14905810610476077465 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Check Secondary Pattern Turn + Story: "\uD604\uC7AC \uADFC\uC811 \uD328\uD134 \uCC28\uB840\uAC00 \uBCF4\uC870 + \uD328\uD134\uC778\uC9C0 \uD655\uC778" + RuntimeTypeString: CheckSecondaryPatternTurnAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 5206874914379224296 + m_Value1: 5224171301583253166 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Check Secondary Pattern Ready + Story: "\uBCF4\uC870 \uD328\uD134 \uC900\uBE44 \uC5EC\uBD80 \uD655\uC778" + RuntimeTypeString: CheckSecondaryPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 16451084940216554610 + m_Value1: 9193361044710023086 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Use Secondary Pattern + Story: "\uBCF4\uC870 \uD328\uD134 \uC2E4\uD589" + RuntimeTypeString: UseSecondaryPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 19154378423494993 + m_Value1: 8816885395727024046 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 + - Name: Check Primary Pattern Ready + Story: "\uAE30\uBCF8 \uD328\uD134 \uC900\uBE44 \uC5EC\uBD80 \uD655\uC778" + RuntimeTypeString: CheckPrimaryPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 17240727157284954760 + m_Value1: 16165053335543343767 + Variables: [] + NamedChildren: [] + IsPlaceholder: 0 + - Name: Use Primary Pattern + Story: "\uAE30\uBCF8 \uD328\uD134 \uC2E4\uD589" + RuntimeTypeString: UsePrimaryPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + RuntimeTypeID: + m_Value0: 13565513945432512325 + m_Value1: 17399476701763261371 + Variables: + - Name: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + Tooltip: + NamedChildren: [] + IsPlaceholder: 0 - Name: ChaseTarget Story: "\uD0C0\uAC9F \uCD94\uC801" RuntimeTypeString: ChaseTargetAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, @@ -696,106 +1042,6 @@ MonoBehaviour: Tooltip: NamedChildren: [] IsPlaceholder: 0 - - Name: SetTargetInRange - Story: "[Range] \uB0B4\uC5D0 [Tag] \uC788\uB294\uC9C0 \uD655\uC778" - RuntimeTypeString: SetTargetInRangeAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, - PublicKeyToken=null - RuntimeTypeID: - m_Value0: 1767281477166675859 - m_Value1: 5208846103639504853 - Variables: - - Name: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - Tooltip: - - Name: Tag - Type: - m_SerializableType: System.String, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - Tooltip: - - Name: Range - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - Tooltip: - NamedChildren: [] - IsPlaceholder: 0 - - Name: RotateToTarget - Story: "[\uB300\uC0C1\uC744] \uBC14\uB77C\uBCF4\uB3C4\uB85D \uD68C\uC804" - RuntimeTypeString: RotateToTargetAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, - PublicKeyToken=null - RuntimeTypeID: - m_Value0: 6653769496062276656 - m_Value1: 2899785121618119178 - Variables: - - Name: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - Tooltip: - - Name: RotationSpeed - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - Tooltip: - - Name: AngleThreshold - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - Tooltip: - NamedChildren: [] - IsPlaceholder: 0 - - Name: Run In Parallel - Story: - RuntimeTypeString: Unity.Behavior.ParallelAllComposite, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - RuntimeTypeID: - m_Value0: 6216542881172158703 - m_Value1: 2191282456596108218 - Variables: [] - NamedChildren: [] - IsPlaceholder: 0 - - Name: Repeat - Story: - RuntimeTypeString: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - RuntimeTypeID: - m_Value0: 3696095273264312494 - m_Value1: 14191201703811421854 - Variables: [] - NamedChildren: [] - IsPlaceholder: 0 - - Name: Use Pattern - Story: "[Pattern] \uC2E4\uD589" - RuntimeTypeString: UsePatternAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, - PublicKeyToken=null - RuntimeTypeID: - m_Value0: 13305875091066958497 - m_Value1: 15475974310776131785 - Variables: - - Name: Pattern - Type: - m_SerializableType: Colosseum.AI.BossPatternData, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - Tooltip: - - Name: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - Tooltip: - NamedChildren: [] - IsPlaceholder: 0 - - Name: Try In Order - Story: - RuntimeTypeString: Unity.Behavior.SelectorComposite, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - RuntimeTypeID: - m_Value0: 11477120919463386923 - m_Value1: 7730102824742023565 - Variables: [] - NamedChildren: [] - IsPlaceholder: 0 m_Blackboards: [] m_MainBlackboardAuthoringAsset: {fileID: -6591390698989283165} m_CommandBuffer: @@ -809,16 +1055,16 @@ MonoBehaviour: RefIds: - rid: -2 type: {class: , ns: , asm: } - - rid: 8805855836547055698 + - rid: 8805856113439801522 type: {class: StartNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - Position: {x: 211.99992, y: -365.45004} + Position: {x: 420, y: -620} ID: - m_Value0: 8361680655506702021 - m_Value1: 11075116708293476273 + m_Value0: 3944491945985234464 + m_Value1: 10075432118744806958 Parents: [] PortModels: - - rid: 8805855836547055699 + - rid: 8805856113439801556 NodeType: m_SerializableType: Unity.Behavior.Start, Unity.Behavior, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null @@ -826,1196 +1072,19 @@ MonoBehaviour: m_Value0: 3335272451348827663 m_Value1: 11549843281177505721 m_FieldValues: [] - Repeat: 0 + Repeat: 1 AllowMultipleRepeatsPerTick: 0 - - rid: 8805855836547055699 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855836547055698 - m_Connections: - - rid: 8805855941168464613 - - rid: 8805855841097089283 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 6473031571298860035, guid: 9f538e60b8b98634b8952310b91dfba0, type: 3} - - rid: 8805855841097089291 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 496.73337, y: 259.3334} - ID: - m_Value0: 3250566284114224087 - m_Value1: 6530346834987549722 - Parents: [] - PortModels: - - rid: 8805855841097089294 - - rid: 8805855841097089295 - ParentNodeID: - m_Value0: 6087481783018872809 - m_Value1: 15765389902485577860 - PortName: True - - rid: 8805855841097089292 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 66.99997, y: 260.66666} - ID: - m_Value0: 13470428754531769568 - m_Value1: 4199236078364731312 - Parents: [] - PortModels: - - rid: 8805855841097089296 - - rid: 8805855841097089297 - ParentNodeID: - m_Value0: 6087481783018872809 - m_Value1: 15765389902485577860 - PortName: False - - rid: 8805855841097089293 - type: {class: BranchingConditionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 299.33334, y: 126} - ID: - m_Value0: 6087481783018872809 - m_Value1: 15765389902485577860 - Parents: [] - PortModels: - - rid: 8805855841097089298 - - rid: 8805855841097089299 - - rid: 8805855841097089300 - NodeType: - m_SerializableType: Unity.Behavior.BranchingConditionComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 12334964803190848789 - m_Value1: 14608808926743427008 - m_FieldValues: [] - k__BackingField: - - ConditionType: - m_SerializableType: Unity.Behavior.VariableComparisonCondition, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - ConditionTypeID: - m_Value0: 4706153636540939941 - m_Value1: 1154942553909992356 - NodeModel: - rid: 8805855841097089293 - m_FieldValues: - - rid: 8805855841097089492 - - rid: 8805855841097089493 - - rid: 8805855841097089518 - OperatorFieldModel: - rid: 8805855841097089493 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - - rid: 8805855841097089294 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089291 - m_Connections: - - rid: 8805855841097089299 - - rid: 8805855841097089295 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089291 - m_Connections: - - rid: 8805855841097089771 - - rid: 8805855841097089296 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089292 - m_Connections: - - rid: 8805855841097089300 - - rid: 8805855841097089297 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089292 - m_Connections: - - rid: 8805855841097089336 - - rid: 8805855841097089298 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089293 - m_Connections: - - rid: 8805855841097089469 - - rid: 8805855841097089299 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: True - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089293 - m_Connections: - - rid: 8805855841097089294 - - rid: 8805855841097089300 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: False - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089293 - m_Connections: - - rid: 8805855841097089296 - - rid: 8805855841097089335 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 66.178566, y: 361.4942} - ID: - m_Value0: 7100545047213284048 - m_Value1: 17094481857695181652 - Parents: [] - PortModels: - - rid: 8805855841097089336 - - rid: 8805855841097089337 - NodeType: - m_SerializableType: WaitAction, Colosseum.Game, Version=0.0.0.0, Culture=neutral, - PublicKeyToken=null - NodeTypeID: - m_Value0: 2068857283001694323 - m_Value1: 11359859023677000345 - m_FieldValues: - - rid: 8805855841097089338 - - rid: 8805855841097089336 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089335 - m_Connections: - - rid: 8805855841097089297 - - rid: 8805855841097089337 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089335 - m_Connections: [] - - rid: 8805855841097089338 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Duration - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089339 - LinkedVariable: - rid: -2 - - rid: 8805855841097089339 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805855841097089353 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 364.27426, y: 640.57556} - ID: - m_Value0: 2775806344500587586 - m_Value1: 15450617276334001013 - Parents: [] - PortModels: - - rid: 8805855841097089354 - - rid: 8805855841097089355 - NodeType: - m_SerializableType: ChaseTargetAction, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 4737707736320149768 - m_Value1: 7523468823499502926 - m_FieldValues: - - rid: 8805855841097089356 - - rid: 8805855841097089357 - - rid: 8805855841097089358 - - rid: 8805855841097089354 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089353 - m_Connections: - - rid: 8805855841097089650 - - rid: 8805855841097089355 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089353 - m_Connections: [] - - rid: 8805855841097089356 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089359 - LinkedVariable: - rid: 8805855841097089283 - - rid: 8805855841097089357 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Speed - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089360 - LinkedVariable: - rid: -2 - - rid: 8805855841097089358 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: StopDistance - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089361 - LinkedVariable: - rid: -2 - - rid: 8805855841097089359 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089360 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 0 - - rid: 8805855841097089361 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 2 - - rid: 8805855841097089467 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 299.42273, y: 39.243973} - ID: - m_Value0: 2112550037797404360 - m_Value1: 3268971171652514817 - Parents: [] - PortModels: - - rid: 8805855841097089468 - - rid: 8805855841097089469 - NodeType: - m_SerializableType: SetTargetInRangeAction, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 1767281477166675859 - m_Value1: 5208846103639504853 - m_FieldValues: - - rid: 8805855841097089470 - - rid: 8805855841097089471 - - rid: 8805855841097089472 - - rid: 8805855841097089468 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089467 - m_Connections: - - rid: 8805855941168464154 - - rid: 8805855841097089469 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089467 - m_Connections: - - rid: 8805855841097089298 - - rid: 8805855841097089470 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089473 - LinkedVariable: - rid: 8805856000049152392 - - rid: 8805855841097089471 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Tag - Type: - m_SerializableType: System.String, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089475 - LinkedVariable: - rid: -2 - - rid: 8805855841097089472 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Range - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089476 - LinkedVariable: - rid: -2 - - rid: 8805855841097089473 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089475 - type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: Player - - rid: 8805855841097089476 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 10 - - rid: 8805855841097089492 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Variable - Type: - m_SerializableType: System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089519 - LinkedVariable: - rid: 8805855841097089517 - - rid: 8805855841097089493 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Operator - Type: - m_SerializableType: Unity.Behavior.ConditionOperator, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089496 - LinkedVariable: - rid: -2 - - rid: 8805855841097089496 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805855841097089517 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805855841097089518 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: ComparisonValue - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089520 - LinkedVariable: - rid: -2 - - rid: 8805855841097089519 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089520 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089544 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 266.31882, y: 640.0522} - ID: - m_Value0: 2891087433149756878 - m_Value1: 17198679099733625875 - Parents: [] - PortModels: - - rid: 8805855841097089545 - - rid: 8805855841097089546 - NodeType: - m_SerializableType: RotateToTargetAction, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 6653769496062276656 - m_Value1: 2899785121618119178 - m_FieldValues: - - rid: 8805855841097089547 - - rid: 8805855841097089548 - - rid: 8805855841097089549 - - rid: 8805855841097089545 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089544 - m_Connections: - - rid: 8805855841097089650 - - rid: 8805855841097089546 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089544 - m_Connections: [] - - rid: 8805855841097089547 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089550 - LinkedVariable: - rid: 8805855841097089551 - - rid: 8805855841097089548 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: RotationSpeed - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089552 - LinkedVariable: - rid: -2 - - rid: 8805855841097089549 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: AngleThreshold - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089553 - LinkedVariable: - rid: -2 - - rid: 8805855841097089550 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089551 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805855841097089552 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 10 - - rid: 8805855841097089553 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805855841097089648 - type: {class: RunInParallelNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 364.38733, y: 548.3096} - ID: - m_Value0: 16536007759615694599 - m_Value1: 10970361502449028502 - Parents: [] - PortModels: - - rid: 8805855841097089649 - - rid: 8805855841097089650 - NodeType: - m_SerializableType: Unity.Behavior.ParallelAllComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 6216542881172158703 - m_Value1: 2191282456596108218 - m_FieldValues: [] - m_Mode: 0 - - rid: 8805855841097089649 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089648 - m_Connections: [] - - rid: 8805855841097089650 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089648 - m_Connections: - - rid: 8805855841097089545 - - rid: 8805855841097089354 - - rid: 8805855841097089764 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 665.6695, y: 458.07162} - ID: - m_Value0: 17935039214629093399 - m_Value1: 1091416046358248687 - Parents: [] - PortModels: - - rid: 8805855841097089767 - - rid: 8805855841097089768 - ParentNodeID: - m_Value0: 10925304658634853314 - m_Value1: 14003116682958237093 - PortName: True - - rid: 8805855841097089765 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 364.38608, y: 456.9788} - ID: - m_Value0: 10801685884990672204 - m_Value1: 10231246884564843605 - Parents: [] - PortModels: - - rid: 8805855841097089769 - - rid: 8805855841097089770 - ParentNodeID: - m_Value0: 10925304658634853314 - m_Value1: 14003116682958237093 - PortName: False - - rid: 8805855841097089766 - type: {class: BranchingConditionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 496.44962, y: 343.05045} - ID: - m_Value0: 10925304658634853314 - m_Value1: 14003116682958237093 - Parents: [] - PortModels: - - rid: 8805855841097089771 - - rid: 8805855841097089772 - - rid: 8805855841097089773 - NodeType: - m_SerializableType: Unity.Behavior.BranchingConditionComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 12334964803190848789 - m_Value1: 14608808926743427008 - m_FieldValues: [] - k__BackingField: - - ConditionType: - m_SerializableType: Unity.Behavior.CheckDistanceCondition, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - ConditionTypeID: - m_Value0: 9868091468408157863 - m_Value1: 6989804287359126538 - NodeModel: - rid: 8805855841097089766 - m_FieldValues: - - rid: 8805855841097089781 - - rid: 8805855841097089782 - - rid: 8805855841097089783 - - rid: 8805855841097089784 - OperatorFieldModel: - rid: 8805855841097089783 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - - rid: 8805855841097089767 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089764 - m_Connections: - - rid: 8805855841097089772 - - rid: 8805855841097089768 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089764 - m_Connections: - - rid: 8805855846311395416 - - rid: 8805855841097089769 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089765 - m_Connections: - - rid: 8805855841097089773 - - rid: 8805855841097089770 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089765 - m_Connections: - - rid: 8805856000049152463 - - rid: 8805855841097089771 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855841097089766 - m_Connections: - - rid: 8805855841097089295 - - rid: 8805855841097089772 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: True - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089766 - m_Connections: - - rid: 8805855841097089767 - - rid: 8805855841097089773 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: False - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855841097089766 - m_Connections: - - rid: 8805855841097089769 - - rid: 8805855841097089781 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Transform - Type: - m_SerializableType: UnityEngine.Transform, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089785 - LinkedVariable: - rid: 8805855841097089801 - - rid: 8805855841097089782 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.Transform, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089786 - LinkedVariable: - rid: 8805855841097089816 - - rid: 8805855841097089783 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Operator - Type: - m_SerializableType: Unity.Behavior.ConditionOperator, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855841097089787 - LinkedVariable: - rid: -2 - - rid: 8805855841097089784 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Threshold - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855841097089788 - LinkedVariable: - rid: 8805855841097089842 - - rid: 8805855841097089785 - type: {class: 'BlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089786 - type: {class: 'BlackboardVariable`1[[UnityEngine.Transform, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855841097089787 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805855841097089788 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 0 - - rid: 8805855841097089801 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 1 - m_Value1: 0 - Name: Self - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805855841097089816 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805855841097089842 - type: {class: 'TypedVariableModel`1[[System.Single, mscorlib]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 6179663786753870576 - m_Value1: 13045418693957266795 - Name: AttackRange - IsExposed: 1 - m_IsShared: 0 - m_Value: 0 - - rid: 8805855846311395415 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 665.83875, y: 546.31714} - ID: - m_Value0: 2656906456090040103 - m_Value1: 5313501299737419023 - Parents: [] - PortModels: - - rid: 8805855846311395416 - - rid: 8805855846311395417 - NodeType: - m_SerializableType: RotateToTargetAction, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 6653769496062276656 - m_Value1: 2899785121618119178 - m_FieldValues: - - rid: 8805855846311395418 - - rid: 8805855846311395419 - - rid: 8805855846311395420 - - rid: 8805855846311395416 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855846311395415 - m_Connections: - - rid: 8805855841097089768 - - rid: 8805855846311395417 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855846311395415 - m_Connections: - - rid: 8805855956374126771 - - rid: 8805855846311395418 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855846311395421 - LinkedVariable: - rid: 8805855846311395422 - - rid: 8805855846311395419 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: RotationSpeed - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855846311395423 - LinkedVariable: - rid: -2 - - rid: 8805855846311395420 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: AngleThreshold - Type: - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855846311395424 - LinkedVariable: - rid: -2 - - rid: 8805855846311395421 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805855846311395422 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805855846311395423 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 10 - - rid: 8805855846311395424 - type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 5 - - rid: 8805855941168464148 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 15.813689, y: -35.53409} - ID: - m_Value0: 7940545116008444959 - m_Value1: 7530289849580528934 - Parents: [] - PortModels: - - rid: 8805855941168464151 - - rid: 8805855941168464152 - ParentNodeID: - m_Value0: 3882872508468950798 - m_Value1: 3938133446346283639 - PortName: True - - rid: 8805855941168464149 - type: {class: FloatingPortNodeModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - Position: {x: 431.27527, y: -39.538033} - ID: - m_Value0: 17027785473523230719 - m_Value1: 11573909034072681315 - Parents: [] - PortModels: - - rid: 8805855941168464153 - - rid: 8805855941168464154 - ParentNodeID: - m_Value0: 3882872508468950798 - m_Value1: 3938133446346283639 - PortName: False - - rid: 8805855941168464150 - type: {class: BranchingConditionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 211.1149, y: -155.69766} - ID: - m_Value0: 3882872508468950798 - m_Value1: 3938133446346283639 - Parents: [] - PortModels: - - rid: 8805855941168464155 - - rid: 8805855941168464156 - - rid: 8805855941168464157 - NodeType: - m_SerializableType: Unity.Behavior.BranchingConditionComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 12334964803190848789 - m_Value1: 14608808926743427008 - m_FieldValues: [] - k__BackingField: - - ConditionType: - m_SerializableType: Unity.Behavior.VariableComparisonCondition, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - ConditionTypeID: - m_Value0: 4706153636540939941 - m_Value1: 1154942553909992356 - NodeModel: - rid: 8805855941168464150 - m_FieldValues: - - rid: 8805855941168464174 - - rid: 8805855941168464175 - - rid: 8805855941168464203 - OperatorFieldModel: - rid: 8805855941168464175 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - - rid: 8805855941168464151 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855941168464148 - m_Connections: - - rid: 8805855941168464156 - - rid: 8805855941168464152 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855941168464148 - m_Connections: [] - - rid: 8805855941168464153 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855941168464149 - m_Connections: - - rid: 8805855941168464157 - - rid: 8805855941168464154 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855941168464149 - m_Connections: - - rid: 8805855841097089468 - - rid: 8805855941168464155 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855941168464150 - m_Connections: - - rid: 8805855941168464614 - - rid: 8805855941168464156 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: True - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855941168464150 - m_Connections: - - rid: 8805855941168464151 - - rid: 8805855941168464157 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: False - m_PortDataFlowType: 1 - m_IsFloating: 1 - m_NodeModel: - rid: 8805855941168464150 - m_Connections: - - rid: 8805855941168464153 - - rid: 8805855941168464174 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Variable - Type: - m_SerializableType: System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855941168464204 - LinkedVariable: - rid: 8805855941168464202 - - rid: 8805855941168464175 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Operator - Type: - m_SerializableType: Unity.Behavior.ConditionOperator, Unity.Behavior, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855941168464178 - LinkedVariable: - rid: -2 - - rid: 8805855941168464178 - type: {class: 'BlackboardVariable`1[[Unity.Behavior.ConditionOperator, Unity.Behavior]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 0 - - rid: 8805855941168464202 - type: {class: 'TypedVariableModel`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 2997173512430605425 - m_Value1: 14990413519379198129 - Name: Die - IsExposed: 1 - m_IsShared: 0 - m_Value: 0 - - rid: 8805855941168464203 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: ComparisonValue - Type: - m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - LocalValue: - rid: 8805855941168464205 - LinkedVariable: - rid: -2 - - rid: 8805855941168464204 - type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 0 - - rid: 8805855941168464205 - type: {class: 'BlackboardVariable`1[[System.Boolean, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: 1 - - rid: 8805855941168464612 + - rid: 8805856113439801523 type: {class: RepeatNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - Position: {x: 211.47302, y: -249.38625} + Position: {x: 420, y: -470} ID: - m_Value0: 16903089648015682040 - m_Value1: 5621269674286214316 + m_Value0: 18202383970471888822 + m_Value1: 5919000831638527321 Parents: [] PortModels: - - rid: 8805855941168464613 - - rid: 8805855941168464614 + - rid: 8805856113439801557 + - rid: 8805856113439801558 NodeType: m_SerializableType: Unity.Behavior.RepeaterModifier, Unity.Behavior, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null @@ -2030,94 +1099,17 @@ MonoBehaviour: m_RepeatMode: 0 k__BackingField: 0 k__BackingField: 1 - - rid: 8805855941168464613 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855941168464612 - m_Connections: - - rid: 8805855836547055699 - - rid: 8805855941168464614 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855941168464612 - m_Connections: - - rid: 8805855941168464155 - - rid: 8805855948962791632 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 568.5252, y: 737.35144} - ID: - m_Value0: 8803463902102802735 - m_Value1: 11879507492776070900 - Parents: [] - PortModels: - - rid: 8805855948962791633 - - rid: 8805855948962791634 - NodeType: - m_SerializableType: UsePatternAction, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 13305875091066958497 - m_Value1: 15475974310776131785 - m_FieldValues: - - rid: 8805855948962791636 - - rid: 8805856000049152268 - - rid: 8805855948962791633 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855948962791632 - m_Connections: [] - - rid: 8805855948962791634 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855948962791632 - m_Connections: [] - - rid: 8805855948962791636 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Pattern - Type: - m_SerializableType: Colosseum.AI.BossPatternData, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855948962791638 - LinkedVariable: - rid: -2 - - rid: 8805855948962791638 - type: {class: 'BlackboardVariable`1[[Colosseum.AI.BossPatternData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2} - - rid: 8805855956374126770 + - rid: 8805856113439801524 type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - Position: {x: 666.3364, y: 639.8787} + Position: {x: 420, y: -280} ID: - m_Value0: 1213596326002826456 - m_Value1: 9846416129968350328 + m_Value0: 398178747935607711 + m_Value1: 7574567307776651754 Parents: [] PortModels: - - rid: 8805855956374126771 - - rid: 8805855956374126772 + - rid: 8805856113439801559 + - rid: 8805856113439801560 NodeType: m_SerializableType: Unity.Behavior.SelectorComposite, Unity.Behavior, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null @@ -2125,222 +1117,804 @@ MonoBehaviour: m_Value0: 11477120919463386923 m_Value1: 7730102824742023565 m_FieldValues: [] - - rid: 8805855956374126771 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + - rid: 8805856113439801525 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855956374126770 - m_Connections: - - rid: 8805855846311395417 - - rid: 8805855956374126772 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855956374126770 - m_Connections: [] - - rid: 8805855974927368268 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 57.14644, y: 556.018} + Position: {x: -620, y: -40} ID: - m_Value0: 6072905976649188714 - m_Value1: 6639982183309942236 + m_Value0: 10441495572728319624 + m_Value1: 18145710329216171556 Parents: [] PortModels: - - rid: 8805855974927368269 - - rid: 8805855974927368270 + - rid: 8805856113439801561 + - rid: 8805856113439801562 NodeType: - m_SerializableType: UsePatternAction, Colosseum.Game, Version=0.0.0.0, + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null NodeTypeID: - m_Value0: 13305875091066958497 - m_Value1: 15475974310776131785 - m_FieldValues: - - rid: 8805855974927368271 - - rid: 8805856000049152230 - - rid: 8805855974927368269 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855974927368268 - m_Connections: - - rid: 8805856000049152464 - - rid: 8805855974927368270 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805855974927368268 - m_Connections: [] - - rid: 8805855974927368271 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Pattern - Type: - m_SerializableType: Colosseum.AI.BossPatternData, Colosseum.Game, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805855974927368272 - LinkedVariable: - rid: -2 - - rid: 8805855974927368272 - type: {class: 'BlackboardVariable`1[[Colosseum.AI.BossPatternData, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2} - - rid: 8805856000049152230 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805856000049152231 - LinkedVariable: - rid: 8805856000049152306 - - rid: 8805856000049152231 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805856000049152268 - type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - FieldName: Target - Type: - m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, - Culture=neutral, PublicKeyToken=null - LocalValue: - rid: 8805856000049152269 - LinkedVariable: - rid: -2 - - rid: 8805856000049152269 - type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} - data: - GUID: - m_Value0: 0 - m_Value1: 0 - Name: - m_Value: {fileID: 0} - - rid: 8805856000049152306 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805856000049152392 - type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - ID: - m_Value0: 7475528897857689991 - m_Value1: 9373801459200419976 - Name: Target - IsExposed: 1 - m_IsShared: 0 - m_Value: {fileID: 0} - - rid: 8805856000049152462 - type: {class: RunInParallelNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: 155.81891, y: 458.1245} - ID: - m_Value0: 14249649058231311876 - m_Value1: 11772280117554626987 - Parents: [] - PortModels: - - rid: 8805856000049152463 - - rid: 8805856000049152464 - NodeType: - m_SerializableType: Unity.Behavior.ParallelAllComposite, Unity.Behavior, - Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - NodeTypeID: - m_Value0: 6216542881172158703 - m_Value1: 2191282456596108218 + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 m_FieldValues: [] - m_Mode: 0 - - rid: 8805856000049152463 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + - rid: 8805856113439801526 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805856000049152462 - m_Connections: - - rid: 8805855841097089770 - - rid: 8805856000049152464 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} - data: - m_Name: OutputPort - m_PortDataFlowType: 1 - m_IsFloating: 0 - m_NodeModel: - rid: 8805856000049152462 - m_Connections: - - rid: 8805856000049152526 - - rid: 8805855974927368269 - - rid: 8805856000049152525 - type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} - data: - Position: {x: -19.514442, y: 506.1245} + Position: {x: -220, y: -40} ID: - m_Value0: 17771351983187136722 - m_Value1: 7918239022991775575 + m_Value0: 6168839543956477089 + m_Value1: 11275182414090957339 Parents: [] PortModels: - - rid: 8805856000049152526 - - rid: 8805856000049152527 + - rid: 8805856113439801563 + - rid: 8805856113439801564 NodeType: - m_SerializableType: RotateToTargetAction, Colosseum.Game, Version=0.0.0.0, + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null NodeTypeID: - m_Value0: 6653769496062276656 - m_Value1: 2899785121618119178 - m_FieldValues: - - rid: 8805856000049152528 - - rid: 8805856000049152529 - - rid: 8805856000049152530 - - rid: 8805856000049152526 - type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + m_FieldValues: [] + - rid: 8805856113439801527 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - m_Name: InputPort - m_PortDataFlowType: 0 - m_IsFloating: 0 - m_NodeModel: - rid: 8805856000049152525 - m_Connections: - - rid: 8805856000049152464 - - rid: 8805856000049152527 + Position: {x: 180, y: -40} + ID: + m_Value0: 16509142761903036207 + m_Value1: 11797946855901307058 + Parents: [] + PortModels: + - rid: 8805856113439801565 + - rid: 8805856113439801566 + NodeType: + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + m_FieldValues: [] + - rid: 8805856113439801528 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 580, y: -40} + ID: + m_Value0: 12671461730204450349 + m_Value1: 15265453094671554164 + Parents: [] + PortModels: + - rid: 8805856113439801567 + - rid: 8805856113439801568 + NodeType: + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + m_FieldValues: [] + - rid: 8805856113439801529 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 980, y: -40} + ID: + m_Value0: 18027270346692850458 + m_Value1: 8457381046822106713 + Parents: [] + PortModels: + - rid: 8805856113439801569 + - rid: 8805856113439801570 + NodeType: + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + m_FieldValues: [] + - rid: 8805856113439801530 + type: {class: CompositeNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1380, y: -40} + ID: + m_Value0: 8713107049279116071 + m_Value1: 9769549314833514694 + Parents: [] + PortModels: + - rid: 8805856113439801571 + - rid: 8805856113439801572 + NodeType: + m_SerializableType: Unity.Behavior.SequenceComposite, Unity.Behavior, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 10181448252506100447 + m_Value1: 8737116843063128493 + m_FieldValues: [] + - rid: 8805856113439801531 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -740, y: 240} + ID: + m_Value0: 13798264256640470984 + m_Value1: 9044784723309059020 + Parents: [] + PortModels: + - rid: 8805856113439801573 + - rid: 8805856113439801574 + NodeType: + m_SerializableType: SelectNearestDownedTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 3479009025465913838 + m_Value1: 8189696432825349292 + m_FieldValues: + - rid: 8805856113439801575 + - rid: 8805856113439801576 + - rid: 8805856113439801532 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -620, y: 240} + ID: + m_Value0: 17028571991082717895 + m_Value1: 7352148230105113793 + Parents: [] + PortModels: + - rid: 8805856113439801577 + - rid: 8805856113439801578 + NodeType: + m_SerializableType: CheckPunishPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17241132588797744616 + m_Value1: 12089745580882483368 + m_FieldValues: [] + - rid: 8805856113439801533 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -500, y: 240} + ID: + m_Value0: 8069975285165892673 + m_Value1: 6614076379062333819 + Parents: [] + PortModels: + - rid: 8805856113439801579 + - rid: 8805856113439801580 + NodeType: + m_SerializableType: UsePunishPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 15871296011671630677 + m_Value1: 8078034232868777638 + m_FieldValues: + - rid: 8805856113439801581 + - rid: 8805856113439801534 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -340, y: 240} + ID: + m_Value0: 2541997251605238282 + m_Value1: 17207302682821541222 + Parents: [] + PortModels: + - rid: 8805856113439801582 + - rid: 8805856113439801583 + NodeType: + m_SerializableType: SelectTargetByDistanceAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17676628481821338191 + m_Value1: 4731651210062498751 + m_FieldValues: + - rid: 8805856113439801584 + - rid: 8805856113439801585 + - rid: 8805856113439801586 + - rid: 8805856113439801587 + - rid: 8805856113439801588 + - rid: 8805856113439801535 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -220, y: 240} + ID: + m_Value0: 1168026670980482786 + m_Value1: 10696105289007618014 + Parents: [] + PortModels: + - rid: 8805856113439801589 + - rid: 8805856113439801590 + NodeType: + m_SerializableType: CheckMobilityPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 8450458953142456155 + m_Value1: 940103638269631644 + m_FieldValues: [] + - rid: 8805856113439801536 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: -100, y: 240} + ID: + m_Value0: 5133138069850922554 + m_Value1: 11111217626666621090 + Parents: [] + PortModels: + - rid: 8805856113439801591 + - rid: 8805856113439801592 + NodeType: + m_SerializableType: UseMobilityPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 10758284640051141051 + m_Value1: 14733138854283253894 + m_FieldValues: + - rid: 8805856113439801593 + - rid: 8805856113439801537 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 0, y: 240} + ID: + m_Value0: 1336661570389436292 + m_Value1: 14184982584268272727 + Parents: [] + PortModels: + - rid: 8805856113439801594 + - rid: 8805856113439801595 + NodeType: + m_SerializableType: RefreshPrimaryTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1676760785695660983 + m_Value1: 3474893727400520085 + m_FieldValues: + - rid: 8805856113439801596 + - rid: 8805856113439801538 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 120, y: 240} + ID: + m_Value0: 1159320695782321619 + m_Value1: 1455929843613418813 + Parents: [] + PortModels: + - rid: 8805856113439801597 + - rid: 8805856113439801598 + NodeType: + m_SerializableType: ValidateTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1389171756588788969 + m_Value1: 2283983672959160206 + m_FieldValues: + - rid: 8805856113439801599 + - rid: 8805856113439801539 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 240, y: 240} + ID: + m_Value0: 12573652026917026955 + m_Value1: 5552834901857357329 + Parents: [] + PortModels: + - rid: 8805856113439801600 + - rid: 8805856113439801601 + NodeType: + m_SerializableType: CheckTargetInAttackRangeAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17746747867388412438 + m_Value1: 14905810610476077465 + m_FieldValues: + - rid: 8805856113439801602 + - rid: 8805856113439801540 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 360, y: 240} + ID: + m_Value0: 3814268768543398152 + m_Value1: 2609183473855007568 + Parents: [] + PortModels: + - rid: 8805856113439801603 + - rid: 8805856113439801604 + NodeType: + m_SerializableType: CheckSecondaryPatternTurnAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 5206874914379224296 + m_Value1: 5224171301583253166 + m_FieldValues: [] + - rid: 8805856113439801541 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 480, y: 240} + ID: + m_Value0: 7006308348220467330 + m_Value1: 11049550376158880254 + Parents: [] + PortModels: + - rid: 8805856113439801605 + - rid: 8805856113439801606 + NodeType: + m_SerializableType: CheckSecondaryPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 16451084940216554610 + m_Value1: 9193361044710023086 + m_FieldValues: [] + - rid: 8805856113439801542 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 600, y: 240} + ID: + m_Value0: 9822364172009382639 + m_Value1: 11871502844696962604 + Parents: [] + PortModels: + - rid: 8805856113439801607 + - rid: 8805856113439801608 + NodeType: + m_SerializableType: UseSecondaryPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 19154378423494993 + m_Value1: 8816885395727024046 + m_FieldValues: + - rid: 8805856113439801609 + - rid: 8805856113439801543 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 520, y: 240} + ID: + m_Value0: 14858217615681981828 + m_Value1: 8818105421142067472 + Parents: [] + PortModels: + - rid: 8805856113439801610 + - rid: 8805856113439801611 + NodeType: + m_SerializableType: RefreshPrimaryTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1676760785695660983 + m_Value1: 3474893727400520085 + m_FieldValues: + - rid: 8805856113439801612 + - rid: 8805856113439801544 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 640, y: 240} + ID: + m_Value0: 109114609900411872 + m_Value1: 8926719061613283666 + Parents: [] + PortModels: + - rid: 8805856113439801613 + - rid: 8805856113439801614 + NodeType: + m_SerializableType: ValidateTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1389171756588788969 + m_Value1: 2283983672959160206 + m_FieldValues: + - rid: 8805856113439801615 + - rid: 8805856113439801545 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 760, y: 240} + ID: + m_Value0: 3749161462120118103 + m_Value1: 2503175866245522430 + Parents: [] + PortModels: + - rid: 8805856113439801616 + - rid: 8805856113439801617 + NodeType: + m_SerializableType: CheckTargetInAttackRangeAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17746747867388412438 + m_Value1: 14905810610476077465 + m_FieldValues: + - rid: 8805856113439801618 + - rid: 8805856113439801546 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 880, y: 240} + ID: + m_Value0: 1856011962074969088 + m_Value1: 6243725556440796836 + Parents: [] + PortModels: + - rid: 8805856113439801619 + - rid: 8805856113439801620 + NodeType: + m_SerializableType: CheckPrimaryPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17240727157284954760 + m_Value1: 16165053335543343767 + m_FieldValues: [] + - rid: 8805856113439801547 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1000, y: 240} + ID: + m_Value0: 7186990809598279497 + m_Value1: 3420770028979615744 + Parents: [] + PortModels: + - rid: 8805856113439801621 + - rid: 8805856113439801622 + NodeType: + m_SerializableType: UsePrimaryPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 13565513945432512325 + m_Value1: 17399476701763261371 + m_FieldValues: + - rid: 8805856113439801623 + - rid: 8805856113439801548 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 920, y: 240} + ID: + m_Value0: 4278553797089195640 + m_Value1: 9252751663660805834 + Parents: [] + PortModels: + - rid: 8805856113439801624 + - rid: 8805856113439801625 + NodeType: + m_SerializableType: RefreshPrimaryTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1676760785695660983 + m_Value1: 3474893727400520085 + m_FieldValues: + - rid: 8805856113439801626 + - rid: 8805856113439801549 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1040, y: 240} + ID: + m_Value0: 17817043910916039977 + m_Value1: 11383935187233238739 + Parents: [] + PortModels: + - rid: 8805856113439801627 + - rid: 8805856113439801628 + NodeType: + m_SerializableType: ValidateTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1389171756588788969 + m_Value1: 2283983672959160206 + m_FieldValues: + - rid: 8805856113439801629 + - rid: 8805856113439801550 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1160, y: 240} + ID: + m_Value0: 10974017013180213996 + m_Value1: 598595675438468009 + Parents: [] + PortModels: + - rid: 8805856113439801630 + - rid: 8805856113439801631 + NodeType: + m_SerializableType: CheckTargetInAttackRangeAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 17746747867388412438 + m_Value1: 14905810610476077465 + m_FieldValues: + - rid: 8805856113439801632 + - rid: 8805856113439801551 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1280, y: 240} + ID: + m_Value0: 15652672805528451484 + m_Value1: 12680400870830473934 + Parents: [] + PortModels: + - rid: 8805856113439801633 + - rid: 8805856113439801634 + NodeType: + m_SerializableType: CheckSecondaryPatternReadyAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 16451084940216554610 + m_Value1: 9193361044710023086 + m_FieldValues: [] + - rid: 8805856113439801552 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1400, y: 240} + ID: + m_Value0: 11262280553926999856 + m_Value1: 9907295714702289646 + Parents: [] + PortModels: + - rid: 8805856113439801635 + - rid: 8805856113439801636 + NodeType: + m_SerializableType: UseSecondaryPatternAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 19154378423494993 + m_Value1: 8816885395727024046 + m_FieldValues: + - rid: 8805856113439801637 + - rid: 8805856113439801553 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1320, y: 240} + ID: + m_Value0: 14996338139681041873 + m_Value1: 11900659897878691184 + Parents: [] + PortModels: + - rid: 8805856113439801638 + - rid: 8805856113439801639 + NodeType: + m_SerializableType: RefreshPrimaryTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1676760785695660983 + m_Value1: 3474893727400520085 + m_FieldValues: + - rid: 8805856113439801640 + - rid: 8805856113439801554 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1440, y: 240} + ID: + m_Value0: 17175457747312659229 + m_Value1: 777420747333904416 + Parents: [] + PortModels: + - rid: 8805856113439801641 + - rid: 8805856113439801642 + NodeType: + m_SerializableType: ValidateTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 1389171756588788969 + m_Value1: 2283983672959160206 + m_FieldValues: + - rid: 8805856113439801643 + - rid: 8805856113439801555 + type: {class: ActionNodeModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + Position: {x: 1560, y: 240} + ID: + m_Value0: 15294844399589336592 + m_Value1: 16330539450226202290 + Parents: [] + PortModels: + - rid: 8805856113439801644 + - rid: 8805856113439801645 + NodeType: + m_SerializableType: ChaseTargetAction, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + NodeTypeID: + m_Value0: 4737707736320149768 + m_Value1: 7523468823499502926 + m_FieldValues: + - rid: 8805856113439801646 + - rid: 8805856113439801647 + - rid: 8805856113439801648 + - rid: 8805856113439801556 type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} data: m_Name: OutputPort m_PortDataFlowType: 1 m_IsFloating: 0 m_NodeModel: - rid: 8805856000049152525 + rid: 8805856113439801522 + m_Connections: + - rid: 8805856113439801557 + - rid: 8805856113439801557 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801523 + m_Connections: + - rid: 8805856113439801556 + - rid: 8805856113439801558 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801523 + m_Connections: + - rid: 8805856113439801559 + - rid: 8805856113439801559 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801524 + m_Connections: + - rid: 8805856113439801558 + - rid: 8805856113439801560 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801524 + m_Connections: + - rid: 8805856113439801561 + - rid: 8805856113439801563 + - rid: 8805856113439801565 + - rid: 8805856113439801567 + - rid: 8805856113439801569 + - rid: 8805856113439801571 + - rid: 8805856113439801561 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801525 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801562 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801525 + m_Connections: + - rid: 8805856113439801573 + - rid: 8805856113439801577 + - rid: 8805856113439801579 + - rid: 8805856113439801563 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801526 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801564 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801526 + m_Connections: + - rid: 8805856113439801582 + - rid: 8805856113439801589 + - rid: 8805856113439801591 + - rid: 8805856113439801565 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801527 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801566 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801527 + m_Connections: + - rid: 8805856113439801594 + - rid: 8805856113439801597 + - rid: 8805856113439801600 + - rid: 8805856113439801603 + - rid: 8805856113439801605 + - rid: 8805856113439801607 + - rid: 8805856113439801567 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801528 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801568 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801528 + m_Connections: + - rid: 8805856113439801610 + - rid: 8805856113439801613 + - rid: 8805856113439801616 + - rid: 8805856113439801619 + - rid: 8805856113439801621 + - rid: 8805856113439801569 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801529 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801570 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801529 + m_Connections: + - rid: 8805856113439801624 + - rid: 8805856113439801627 + - rid: 8805856113439801630 + - rid: 8805856113439801633 + - rid: 8805856113439801635 + - rid: 8805856113439801571 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801530 + m_Connections: + - rid: 8805856113439801560 + - rid: 8805856113439801572 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801530 + m_Connections: + - rid: 8805856113439801638 + - rid: 8805856113439801641 + - rid: 8805856113439801644 + - rid: 8805856113439801573 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801531 + m_Connections: + - rid: 8805856113439801562 + - rid: 8805856113439801574 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801531 m_Connections: [] - - rid: 8805856000049152528 + - rid: 8805856113439801575 type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: FieldName: Target @@ -2348,32 +1922,741 @@ MonoBehaviour: m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null LocalValue: - rid: 8805856000049152531 + rid: 8805856113439801649 LinkedVariable: - rid: 8805856000049152532 - - rid: 8805856000049152529 + rid: 8805856113439801650 + - rid: 8805856113439801576 type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - FieldName: RotationSpeed + FieldName: SearchRadius Type: m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 LocalValue: - rid: 8805856000049152533 + rid: 8805856113439801651 LinkedVariable: rid: -2 - - rid: 8805856000049152530 + - rid: 8805856113439801577 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801532 + m_Connections: + - rid: 8805856113439801562 + - rid: 8805856113439801578 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801532 + m_Connections: [] + - rid: 8805856113439801579 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801533 + m_Connections: + - rid: 8805856113439801562 + - rid: 8805856113439801580 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801533 + m_Connections: [] + - rid: 8805856113439801581 type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} data: - FieldName: AngleThreshold + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801652 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801582 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801534 + m_Connections: + - rid: 8805856113439801564 + - rid: 8805856113439801583 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801534 + m_Connections: [] + - rid: 8805856113439801584 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801653 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801585 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Tag + Type: + m_SerializableType: System.String, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + LocalValue: + rid: 8805856113439801654 + LinkedVariable: + rid: -2 + - rid: 8805856113439801586 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: MinRange Type: m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 LocalValue: - rid: 8805856000049152534 + rid: 8805856113439801655 LinkedVariable: rid: -2 - - rid: 8805856000049152531 + - rid: 8805856113439801587 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: MaxRange + Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + LocalValue: + rid: 8805856113439801656 + LinkedVariable: + rid: -2 + - rid: 8805856113439801588 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: SelectionMode + Type: + m_SerializableType: DistanceTargetSelectionMode, Colosseum.Game, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801657 + LinkedVariable: + rid: -2 + - rid: 8805856113439801589 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801535 + m_Connections: + - rid: 8805856113439801564 + - rid: 8805856113439801590 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801535 + m_Connections: [] + - rid: 8805856113439801591 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801536 + m_Connections: + - rid: 8805856113439801564 + - rid: 8805856113439801592 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801536 + m_Connections: [] + - rid: 8805856113439801593 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801658 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801594 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801537 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801595 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801537 + m_Connections: [] + - rid: 8805856113439801596 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801659 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801597 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801538 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801598 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801538 + m_Connections: [] + - rid: 8805856113439801599 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801660 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801600 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801539 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801601 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801539 + m_Connections: [] + - rid: 8805856113439801602 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801661 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801603 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801540 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801604 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801540 + m_Connections: [] + - rid: 8805856113439801605 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801541 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801606 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801541 + m_Connections: [] + - rid: 8805856113439801607 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801542 + m_Connections: + - rid: 8805856113439801566 + - rid: 8805856113439801608 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801542 + m_Connections: [] + - rid: 8805856113439801609 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801662 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801610 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801543 + m_Connections: + - rid: 8805856113439801568 + - rid: 8805856113439801611 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801543 + m_Connections: [] + - rid: 8805856113439801612 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801663 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801613 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801544 + m_Connections: + - rid: 8805856113439801568 + - rid: 8805856113439801614 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801544 + m_Connections: [] + - rid: 8805856113439801615 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801664 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801616 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801545 + m_Connections: + - rid: 8805856113439801568 + - rid: 8805856113439801617 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801545 + m_Connections: [] + - rid: 8805856113439801618 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801665 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801619 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801546 + m_Connections: + - rid: 8805856113439801568 + - rid: 8805856113439801620 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801546 + m_Connections: [] + - rid: 8805856113439801621 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801547 + m_Connections: + - rid: 8805856113439801568 + - rid: 8805856113439801622 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801547 + m_Connections: [] + - rid: 8805856113439801623 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801666 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801624 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801548 + m_Connections: + - rid: 8805856113439801570 + - rid: 8805856113439801625 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801548 + m_Connections: [] + - rid: 8805856113439801626 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801667 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801627 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801549 + m_Connections: + - rid: 8805856113439801570 + - rid: 8805856113439801628 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801549 + m_Connections: [] + - rid: 8805856113439801629 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801668 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801630 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801550 + m_Connections: + - rid: 8805856113439801570 + - rid: 8805856113439801631 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801550 + m_Connections: [] + - rid: 8805856113439801632 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801669 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801633 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801551 + m_Connections: + - rid: 8805856113439801570 + - rid: 8805856113439801634 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801551 + m_Connections: [] + - rid: 8805856113439801635 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801552 + m_Connections: + - rid: 8805856113439801570 + - rid: 8805856113439801636 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801552 + m_Connections: [] + - rid: 8805856113439801637 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801670 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801638 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801553 + m_Connections: + - rid: 8805856113439801572 + - rid: 8805856113439801639 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801553 + m_Connections: [] + - rid: 8805856113439801640 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801671 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801641 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801554 + m_Connections: + - rid: 8805856113439801572 + - rid: 8805856113439801642 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801554 + m_Connections: [] + - rid: 8805856113439801643 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801672 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801644 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: InputPort + m_PortDataFlowType: 0 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801555 + m_Connections: + - rid: 8805856113439801572 + - rid: 8805856113439801645 + type: {class: PortModel, ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} + data: + m_Name: OutputPort + m_PortDataFlowType: 1 + m_IsFloating: 0 + m_NodeModel: + rid: 8805856113439801555 + m_Connections: [] + - rid: 8805856113439801646 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Target + Type: + m_SerializableType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + LocalValue: + rid: 8805856113439801673 + LinkedVariable: + rid: 8805856113439801650 + - rid: 8805856113439801647 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: Speed + Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + LocalValue: + rid: 8805856113439801674 + LinkedVariable: + rid: -2 + - rid: 8805856113439801648 + type: {class: BehaviorGraphNodeModel/FieldModel, ns: Unity.Behavior, asm: Unity.Behavior.Authoring} + data: + FieldName: StopDistance + Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + LocalValue: + rid: 8805856113439801675 + LinkedVariable: + rid: -2 + - rid: 8805856113439801649 type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: @@ -2381,7 +2664,7 @@ MonoBehaviour: m_Value1: 0 Name: m_Value: {fileID: 0} - - rid: 8805856000049152532 + - rid: 8805856113439801650 type: {class: 'TypedVariableModel`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior.GraphFramework, asm: Unity.Behavior.GraphFramework} data: ID: @@ -2391,22 +2674,206 @@ MonoBehaviour: IsExposed: 1 m_IsShared: 0 m_Value: {fileID: 0} - - rid: 8805856000049152533 + - rid: 8805856113439801651 type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: m_Value0: 0 m_Value1: 0 Name: - m_Value: 10 - - rid: 8805856000049152534 + m_Value: 0 + - rid: 8805856113439801652 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801653 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801654 + type: {class: 'BlackboardVariable`1[[System.String, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: Player + - rid: 8805856113439801655 type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} data: GUID: m_Value0: 0 m_Value1: 0 Name: - m_Value: 5 + m_Value: 0 + - rid: 8805856113439801656 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 20 + - rid: 8805856113439801657 + type: {class: 'BlackboardVariable`1[[DistanceTargetSelectionMode, Colosseum.Game]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 1 + - rid: 8805856113439801658 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801659 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801660 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801661 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801662 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801663 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801664 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801665 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801666 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801667 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801668 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801669 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801670 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801671 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801672 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801673 + type: {class: 'BlackboardVariable`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: {fileID: 0} + - rid: 8805856113439801674 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 0 + - rid: 8805856113439801675 + type: {class: 'BlackboardVariable`1[[System.Single, mscorlib]]', ns: Unity.Behavior, asm: Unity.Behavior} + data: + GUID: + m_Value0: 0 + m_Value1: 0 + Name: + m_Value: 2 --- !u!114 &6694785542709420471 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2483,4 +2950,3 @@ MonoBehaviour: m_Value1: 14990413519379198129 Name: Die m_Value: 0 - diff --git a/Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta b/Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta index fcde3bba..bd47c7e4 100644 --- a/Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta +++ b/Assets/_Game/Animations/Anim_Drog_스윙.fbx.meta @@ -62,6 +62,13 @@ ModelImporter: floatParameter: 0 intParameter: 0 messageOptions: 0 + - time: 0.53048134 + functionName: OnEffect + data: + objectReferenceParameter: {instanceID: 0} + floatParameter: 0 + intParameter: 1 + messageOptions: 0 - time: 0.99549305 functionName: OnSkillEnd data: diff --git a/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta b/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta index e82a6525..19cf285b 100644 --- a/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta +++ b/Assets/_Game/Animations/Anim_Drog_오른손치기2.fbx.meta @@ -55,13 +55,6 @@ ModelImporter: bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 curves: [] events: - - time: 0.35211262 - functionName: OnEffect - data: - objectReferenceParameter: {instanceID: 0} - floatParameter: 0 - intParameter: 1 - messageOptions: 0 - time: 0.3636364 functionName: OnEffect data: @@ -69,6 +62,13 @@ ModelImporter: floatParameter: 0 intParameter: 0 messageOptions: 0 + - time: 0.37272727 + functionName: OnEffect + data: + objectReferenceParameter: {instanceID: 0} + floatParameter: 0 + intParameter: 1 + messageOptions: 0 - time: 0.9887324 functionName: OnSkillEnd data: diff --git a/Assets/_Game/Animations/Anim_Drog_점프.fbx.meta b/Assets/_Game/Animations/Anim_Drog_점프.fbx.meta index b02a761c..69811248 100644 --- a/Assets/_Game/Animations/Anim_Drog_점프.fbx.meta +++ b/Assets/_Game/Animations/Anim_Drog_점프.fbx.meta @@ -471,6 +471,13 @@ ModelImporter: floatParameter: 0 intParameter: 0 messageOptions: 0 + - time: 0.06148243 + functionName: OnEffect + data: + objectReferenceParameter: {instanceID: 0} + floatParameter: 0 + intParameter: 1 + messageOptions: 0 transformMask: [] maskType: 3 maskSource: {fileID: 31900000, guid: e8e1ad9aea8c740458a8550aa77c27b0, type: 2} diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset new file mode 100644 index 00000000..83104441 --- /dev/null +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3} + m_Name: "Data_Pattern_Drog_\uB0B4\uB824\uCC0D\uAE30" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData + patternName: "\uB0B4\uB824\uCC0D\uAE30" + steps: + - Type: 0 + Skill: {fileID: 11400000, guid: 773afd8dabe30374c826b7fa1d1a68ea, type: 2} + Duration: 0 + cooldown: 4 diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset.meta b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset.meta new file mode 100644 index 00000000..5fd56b74 --- /dev/null +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_내려찍기.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a52d59d590b4eaa9ef92b7984eb08c7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset index 32ee8c1c..2fd2242c 100644 --- a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_약2타-스윙.asset @@ -17,9 +17,6 @@ MonoBehaviour: - Type: 0 Skill: {fileID: 11400000, guid: 4f40629d4d334434285e8fdec3714536, type: 2} Duration: 0 - - Type: 0 - Skill: {fileID: 11400000, guid: 773afd8dabe30374c826b7fa1d1a68ea, type: 2} - Duration: 0 - Type: 0 Skill: {fileID: 11400000, guid: 3acbf1c5ec71bef4bb13f8534605d554, type: 2} Duration: 0.5 diff --git a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset index e93244d8..e6c67989 100644 --- a/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset +++ b/Assets/_Game/Data/Patterns/Data_Pattern_Drog_점프.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3} m_Name: "Data_Pattern_Drog_\uC810\uD504" m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData - patternName: "\uAE30\uBCF8 \uD328\uD134" + patternName: "\uB3C4\uC57D" steps: - Type: 0 Skill: {fileID: 11400000, guid: 0e22d4b1dc395a04fb00ca4f82aeb838, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset index 84311ae7..836145b9 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_다운추가타.asset @@ -25,3 +25,4 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 0f134a897a7e4d0e98c8d9058b1d79d1, type: 2} + - {fileID: 11400000, guid: 216d4b5f6ce9479e94e0d306399f4891, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset index 18e3d60a..87c6234c 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_스윙.asset @@ -23,4 +23,5 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 94b0f3305cea88c458a56783a486340e, type: 2} + - {fileID: 11400000, guid: e9d73ea9d8f4462ab5d2f2d844eef2ab, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset index 3129c624..36fc71a5 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_오른손치기2.asset @@ -23,5 +23,5 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 87b064a0134987b4b9638e184ab07411, type: 2} - - {fileID: 11400000, guid: 0dba6dca651743bc84b0df42f9dbd290, type: 2} + - {fileID: 11400000, guid: 2db6d8d7f5da4f7ab9f0a12e65498ab1, type: 2} diff --git a/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset index 64892d31..23bf54ae 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Drog_점프착지.asset @@ -25,4 +25,5 @@ MonoBehaviour: manaCost: 0 effects: - {fileID: 11400000, guid: 11bd2d1ebdbfc2f4abf5a9d886615eb3, type: 2} + - {fileID: 11400000, guid: 74cc72abcf5f49d0aed2d0a2258c73d8, type: 2} diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset new file mode 100644 index 00000000..034bea20 --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27cd4e4eb6a485845953db2a108a37f8, type: 3} + m_Name: "Data_SkillEffect_Drog_\uB2E4\uC6B4\uCD94\uAC00\uD0C0_1_\uB109\uBC31" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.KnockbackEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 3.25 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + force: 6 + upwardForce: 1 + duration: 0.25 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset.meta new file mode 100644 index 00000000..d084357d --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_다운추가타_1_넉백.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 216d4b5f6ce9479e94e0d306399f4891 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset new file mode 100644 index 00000000..4db4083b --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27cd4e4eb6a485845953db2a108a37f8, type: 3} + m_Name: "Data_SkillEffect_Drog_\uC2A4\uC719_1_\uB109\uBC31" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.KnockbackEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 1 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 3 + fanOriginDistance: 0 + fanRadius: 3 + fanHalfAngle: 45 + force: 7 + upwardForce: 1.5 + duration: 0.3 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset.meta new file mode 100644 index 00000000..c72f7fdb --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_스윙_1_넉백.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9d73ea9d8f4462ab5d2f2d844eef2ab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset index 4c0b4eb2..ea982c3e 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset @@ -23,4 +23,4 @@ MonoBehaviour: fanOriginDistance: 0 fanRadius: 3 fanHalfAngle: 45 - duration: 2.5 + duration: 1.25 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta index 40dd05ca..baaf9c49 100644 --- a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_오른손치기2_1_다운.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0dba6dca651743bc84b0df42f9dbd290 +guid: 2db6d8d7f5da4f7ab9f0a12e65498ab1 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset new file mode 100644 index 00000000..08ec538b --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27cd4e4eb6a485845953db2a108a37f8, type: 3} + m_Name: "Data_SkillEffect_Drog_\uC810\uD504_1_\uB109\uBC31" + m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.KnockbackEffect + targetType: 1 + targetTeam: 0 + areaCenter: 0 + areaShape: 0 + targetLayers: + serializedVersion: 2 + m_Bits: 4294967295 + areaRadius: 5 + fanOriginDistance: 1 + fanRadius: 3 + fanHalfAngle: 45 + force: 7 + upwardForce: 1.25 + duration: 0.35 diff --git a/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset.meta b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset.meta new file mode 100644 index 00000000..175e6b4a --- /dev/null +++ b/Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Drog_점프_1_넉백.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74cc72abcf5f49d0aed2d0a2258c73d8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab index 43d1b1bd..bb58da5b 100644 --- a/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab +++ b/Assets/_Game/Prefabs/Bosses/Prefab_Boss_Drog.prefab @@ -2187,6 +2187,7 @@ MonoBehaviour: skillController: {fileID: 8818883032728065057} navMeshAgent: {fileID: 5153439431748782209} mainPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2} + slamPattern: {fileID: 11400000, guid: 4a52d59d590b4eaa9ef92b7984eb08c7, type: 2} leapPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2} downPunishPattern: {fileID: 11400000, guid: fe5100f855d14c0faac44b6d4f2c771e, type: 2} phase2HealthThreshold: 0.75 @@ -2194,7 +2195,10 @@ MonoBehaviour: targetRefreshInterval: 0.2 leapDistanceThreshold: 8 downPunishSearchRadius: 6 - disableBehaviorGraph: 1 + phase1SlamInterval: 3 + phase2SlamInterval: 2 + phase3SlamInterval: 2 + disableBehaviorGraph: 0 debugMode: 1 --- !u!114 &7544406269366897481 MonoBehaviour: diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs new file mode 100644 index 00000000..93b2088c --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs @@ -0,0 +1,249 @@ +using System; + +using Colosseum; +using Colosseum.AI; +using Colosseum.Combat; +using Colosseum.Enemy; +using Colosseum.Player; +using Colosseum.Skills; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Action = Unity.Behavior.Action; + +/// +/// 보스 공통 패턴 실행용 Behavior Action 기반 클래스입니다. +/// +[Serializable, GeneratePropertyBag] +public abstract partial class BossPatternActionBase : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + protected BossEnemy bossEnemy; + protected EnemyBase enemyBase; + protected SkillController skillController; + protected BossCombatBehaviorContext combatBehaviorContext; + protected UnityEngine.AI.NavMeshAgent navMeshAgent; + + private BossPatternData activePattern; + private GameObject activeTarget; + private int currentStepIndex; + private bool isWaiting; + private float waitEndTime; + + /// + /// 액션 시작 시 실제로 실행할 패턴과 대상을 결정합니다. + /// + protected abstract bool TryResolvePattern(out BossPatternData pattern, out GameObject target); + + protected override Status OnStart() + { + ResolveReferences(); + ClearRuntimeState(); + + if (!IsReady()) + return Status.Failure; + + if (bossEnemy.IsDead || bossEnemy.IsTransitioning) + return Status.Failure; + + if (skillController.IsPlayingAnimation) + return Status.Failure; + + if (!TryResolvePattern(out BossPatternData pattern, out GameObject target)) + return Status.Failure; + + activePattern = pattern; + activeTarget = target; + + if (Target != null) + Target.Value = target; + + StopMovement(); + return ExecuteCurrentStep(); + } + + protected override Status OnUpdate() + { + if (!IsReady() || activePattern == null) + return Status.Failure; + + if (bossEnemy.IsDead || bossEnemy.IsTransitioning) + return Status.Failure; + + if (isWaiting) + { + if (Time.time < waitEndTime) + return Status.Running; + + isWaiting = false; + } + else if (skillController.IsPlayingAnimation) + { + return Status.Running; + } + + currentStepIndex++; + if (currentStepIndex >= activePattern.Steps.Count) + { + UsePatternAction.MarkPatternUsed(GameObject, activePattern); + return Status.Success; + } + + return ExecuteCurrentStep(); + } + + protected override void OnEnd() + { + ClearRuntimeState(); + } + + protected virtual GameObject ResolveStepTarget(GameObject fallbackTarget) + { + return fallbackTarget; + } + + protected GameObject FindNearestLivingPlayer() + { + PlayerNetworkController[] players = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); + GameObject nearestTarget = null; + float nearestDistance = float.MaxValue; + float maxDistance = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity; + + for (int i = 0; i < players.Length; i++) + { + PlayerNetworkController player = players[i]; + if (player == null || player.IsDead || !player.gameObject.activeInHierarchy) + continue; + + GameObject candidate = player.gameObject; + if (Team.IsSameTeam(GameObject, candidate)) + continue; + + float distance = Vector3.Distance(GameObject.transform.position, candidate.transform.position); + if (distance > maxDistance || distance >= nearestDistance) + continue; + + nearestDistance = distance; + nearestTarget = candidate; + } + + return nearestTarget; + } + + protected GameObject ResolvePrimaryTarget() + { + GameObject highestThreatTarget = enemyBase != null + ? enemyBase.GetHighestThreatTarget(Target?.Value, null, enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity) + : null; + + GameObject target = highestThreatTarget != null ? highestThreatTarget : FindNearestLivingPlayer(); + if (Target != null) + Target.Value = target; + + return target; + } + + protected bool IsValidHostileTarget(GameObject candidate) + { + if (candidate == null || !candidate.activeInHierarchy) + return false; + + if (Team.IsSameTeam(GameObject, candidate)) + return false; + + IDamageable damageable = candidate.GetComponent(); + return damageable == null || !damageable.IsDead; + } + + protected void StopMovement() + { + if (navMeshAgent == null || !navMeshAgent.enabled) + return; + + navMeshAgent.isStopped = true; + navMeshAgent.ResetPath(); + } + + protected void LogDebug(string message) + { + combatBehaviorContext?.LogDebug(GetType().Name, message); + } + + private Status ExecuteCurrentStep() + { + if (activePattern == null || currentStepIndex < 0 || currentStepIndex >= activePattern.Steps.Count) + return Status.Failure; + + PatternStep step = activePattern.Steps[currentStepIndex]; + if (step.Type == PatternStepType.Wait) + { + isWaiting = true; + waitEndTime = Time.time + step.Duration; + return Status.Running; + } + + if (step.Skill == null) + { + Debug.LogWarning($"[{GetType().Name}] 스킬이 비어 있는 패턴 스텝입니다: {activePattern.PatternName} / Step={currentStepIndex}"); + return Status.Failure; + } + + GameObject skillTarget = activeTarget; + if (step.Skill.JumpToTarget) + { + skillTarget = ResolveStepTarget(activeTarget); + if (skillTarget == null) + { + LogDebug($"점프 타겟을 찾지 못해 실패: {activePattern.PatternName}"); + return Status.Failure; + } + + enemyBase?.SetJumpTarget(skillTarget.transform.position); + } + + if (!skillController.ExecuteSkill(step.Skill)) + { + Debug.LogWarning($"[{GetType().Name}] 스킬 실행 실패: {step.Skill.SkillName}"); + return Status.Failure; + } + + LogDebug($"패턴 실행: {activePattern.PatternName} / Step={currentStepIndex} / Skill={step.Skill.SkillName}"); + return Status.Running; + } + + private bool IsReady() + { + return bossEnemy != null && enemyBase != null && skillController != null && combatBehaviorContext != null; + } + + private void ResolveReferences() + { + if (bossEnemy == null) + bossEnemy = GameObject.GetComponent(); + + if (enemyBase == null) + enemyBase = GameObject.GetComponent(); + + if (skillController == null) + skillController = GameObject.GetComponent(); + + if (combatBehaviorContext == null) + combatBehaviorContext = GameObject.GetComponent(); + + if (navMeshAgent == null) + navMeshAgent = GameObject.GetComponent(); + } + + private void ClearRuntimeState() + { + activePattern = null; + activeTarget = null; + currentStepIndex = 0; + isWaiting = false; + waitEndTime = 0f; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs.meta new file mode 100644 index 00000000..5a3cfebf --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/BossPatternActionBase.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 44fff80e86b16f6419b0e952efbebf2a \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs new file mode 100644 index 00000000..cac0d366 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 기동 패턴 준비 여부를 확인하는 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Mobility Pattern Ready", + story: "기동 패턴 준비 여부 확인", + category: "Action", + id: "5b4f133ba50f46759c1c1d3347eb0b0d")] +public partial class CheckMobilityPatternReadyAction : CheckPatternReadyActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Mobility; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs.meta new file mode 100644 index 00000000..079dbf5d --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckMobilityPatternReadyAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 489f56d9043e6d24fbe8e5574b6729be \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs new file mode 100644 index 00000000..0f369108 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs @@ -0,0 +1,31 @@ +using System; + +using Colosseum.AI; +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +using Action = Unity.Behavior.Action; + +/// +/// 지정된 공통 패턴 역할의 준비 여부를 확인하는 체크 액션 기반 클래스입니다. +/// +[Serializable, GeneratePropertyBag] +public abstract partial class CheckPatternReadyActionBase : Action +{ + /// + /// 현재 액션이 검사할 패턴 역할입니다. + /// + protected abstract BossCombatPatternRole PatternRole { get; } + + protected override Status OnStart() + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + if (context == null) + return Status.Failure; + + BossPatternData pattern = context.GetPattern(PatternRole); + return UsePatternAction.IsPatternReady(GameObject, pattern) ? Status.Success : Status.Failure; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs.meta new file mode 100644 index 00000000..50b6f0f6 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPatternReadyActionBase.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 59a58b1d5cc33f943a1af10764ee11b5 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs new file mode 100644 index 00000000..cec1c3a0 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 기본 패턴 준비 여부를 확인하는 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Primary Pattern Ready", + story: "기본 패턴 준비 여부 확인", + category: "Action", + id: "88626617015e43ef97ea4dd05cce55e0")] +public partial class CheckPrimaryPatternReadyAction : CheckPatternReadyActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Primary; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs.meta new file mode 100644 index 00000000..e870a180 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPrimaryPatternReadyAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e3b45dc2b81beac44a35a3a6545c0488 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs new file mode 100644 index 00000000..32de2a02 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 징벌 패턴 준비 여부를 확인하는 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Punish Pattern Ready", + story: "징벌 패턴 준비 여부 확인", + category: "Action", + id: "e855b3f8bdce44efa85859358d67c7a7")] +public partial class CheckPunishPatternReadyAction : CheckPatternReadyActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Punish; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs.meta new file mode 100644 index 00000000..176ff300 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckPunishPatternReadyAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2211d1182dbbf7741b0058718afae162 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs new file mode 100644 index 00000000..2a031f35 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 보조 패턴 준비 여부를 확인하는 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Secondary Pattern Ready", + story: "보조 패턴 준비 여부 확인", + category: "Action", + id: "72d4626f97fe4de4aedfda612961957f")] +public partial class CheckSecondaryPatternReadyAction : CheckPatternReadyActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Secondary; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs.meta new file mode 100644 index 00000000..f7bd368a --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternReadyAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e155d7ca234bf8148bef34617a3a8739 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs new file mode 100644 index 00000000..3e90e61e --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs @@ -0,0 +1,26 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +using Action = Unity.Behavior.Action; + +/// +/// 현재 근접 패턴 차례가 보조 패턴인지 확인하는 공통 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Secondary Pattern Turn", + story: "현재 근접 패턴 차례가 보조 패턴인지 확인", + category: "Action", + id: "e85477bd25894248aeeea8b41efc7f48")] +public partial class CheckSecondaryPatternTurnAction : Action +{ + protected override Status OnStart() + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + return context != null && context.IsNextSecondaryPattern() ? Status.Success : Status.Failure; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs.meta new file mode 100644 index 00000000..c1258b5c --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckSecondaryPatternTurnAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 435950077eea65d43beb6bfaba38dc60 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs new file mode 100644 index 00000000..de5137aa --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs @@ -0,0 +1,35 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Action = Unity.Behavior.Action; + +/// +/// 현재 타겟이 보스의 공격 사거리 안에 있는지 확인하는 공통 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Check Target In Attack Range", + story: "[Target]이 보스 공격 사거리 안에 있는지 확인", + category: "Action", + id: "16821bba281d49f699d1ac9ec613dcce")] +public partial class CheckTargetInAttackRangeAction : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + protected override Status OnStart() + { + if (Target?.Value == null) + return Status.Failure; + + EnemyBase enemyBase = GameObject.GetComponent(); + float attackRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; + float distance = Vector3.Distance(GameObject.transform.position, Target.Value.transform.position); + return distance <= attackRange + 0.25f ? Status.Success : Status.Failure; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs.meta new file mode 100644 index 00000000..db814576 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/CheckTargetInAttackRangeAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5b3844411f6dd784089c40c5d4325b45 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs new file mode 100644 index 00000000..dd94b5a9 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs @@ -0,0 +1,46 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Action = Unity.Behavior.Action; + +/// +/// 보스의 주 대상을 갱신하는 공통 Behavior Action입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Refresh Primary Target", + story: "보스 주 대상을 [Target]으로 갱신", + category: "Action", + id: "b7dbb1fc0c0d451795e9f02d6f4d3930")] +public partial class RefreshPrimaryTargetAction : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + protected override Status OnStart() + { + EnemyBase enemyBase = GameObject.GetComponent(); + if (enemyBase == null) + return Status.Failure; + + GameObject currentTarget = Target != null ? Target.Value : null; + float aggroRange = enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity; + GameObject resolvedTarget = enemyBase.GetHighestThreatTarget(currentTarget, null, aggroRange); + + if (resolvedTarget == null) + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + resolvedTarget = context != null ? context.FindNearestLivingTarget() : null; + } + + if (Target != null) + Target.Value = resolvedTarget; + + return resolvedTarget != null ? Status.Success : Status.Failure; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs.meta new file mode 100644 index 00000000..2bf3827f --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/RefreshPrimaryTargetAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 47bff77f5775ca3409b7f9676596d561 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs new file mode 100644 index 00000000..f9611d58 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs @@ -0,0 +1,93 @@ +using System; + +using Colosseum; +using Colosseum.Combat; +using Colosseum.Enemy; +using Colosseum.Player; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Action = Unity.Behavior.Action; + +/// +/// 일정 반경 내에서 가장 가까운 다운 대상 플레이어를 선택하는 Behavior Action입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Select Nearest Downed Target", + story: "[SearchRadius] 반경 내 가장 가까운 다운 대상을 [Target]으로 선택", + category: "Action", + id: "ee1146ad46ec4730acb4d6c883a5a771")] +public partial class SelectNearestDownedTargetAction : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + [SerializeReference] + public BlackboardVariable SearchRadius = new BlackboardVariable(0f); + + protected override Status OnStart() + { + float searchRadius = ResolveSearchRadius(); + HitReactionController[] hitReactionControllers = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); + + GameObject nearestTarget = null; + float nearestDistance = float.MaxValue; + + for (int i = 0; i < hitReactionControllers.Length; i++) + { + HitReactionController controller = hitReactionControllers[i]; + if (controller == null || !controller.IsDowned) + continue; + + GameObject candidate = controller.gameObject; + if (candidate == null || !candidate.activeInHierarchy) + continue; + + if (Team.IsSameTeam(GameObject, candidate)) + continue; + + IDamageable damageable = candidate.GetComponent(); + if (damageable != null && damageable.IsDead) + continue; + + float distance = Vector3.Distance(GameObject.transform.position, candidate.transform.position); + if (distance > searchRadius || distance >= nearestDistance) + continue; + + nearestDistance = distance; + nearestTarget = candidate; + } + + if (nearestTarget == null) + return Status.Failure; + + Target.Value = nearestTarget; + LogDebug($"다운 대상 선택: {nearestTarget.name}"); + return Status.Success; + } + + private float ResolveSearchRadius() + { + if (SearchRadius.Value > 0f) + return SearchRadius.Value; + + BossCombatBehaviorContext context = GameObject.GetComponent(); + if (context != null) + return context.PunishSearchRadius; + + EnemyBase enemyBase = GameObject.GetComponent(); + if (enemyBase != null && enemyBase.Data != null) + return enemyBase.Data.AttackRange + 4f; + + return 6f; + } + + private void LogDebug(string message) + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + context?.LogDebug(nameof(SelectNearestDownedTargetAction), message); + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs.meta new file mode 100644 index 00000000..7557f7c3 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectNearestDownedTargetAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f7453c48fa1599a44a10be23750ade75 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs new file mode 100644 index 00000000..f2b93521 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs @@ -0,0 +1,172 @@ +using System; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Colosseum; +using Colosseum.Combat; +using Colosseum.Enemy; + +using Action = Unity.Behavior.Action; + +/// +/// 거리 조건에 맞는 대상을 선택하는 Behavior Action입니다. +/// 가장 가까운 대상, 가장 먼 대상, 후보 중 랜덤 선택을 지원합니다. +/// +[Serializable] +public enum DistanceTargetSelectionMode +{ + Nearest = 0, + Farthest = 1, + Random = 2, +} + +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Select Target By Distance", + story: "[Tag] 대상 중 [MinRange] 이상 [MaxRange] 이하 범위에서 [SelectionMode] 방식으로 [Target] 선택", + category: "Action", + id: "4f6a830df3ff4ff5bf8bd2c8b433aa41")] +public partial class SelectTargetByDistanceAction : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + [SerializeReference] + public BlackboardVariable Tag = new BlackboardVariable("Player"); + + [SerializeReference] + public BlackboardVariable MinRange = new BlackboardVariable(0f); + + [SerializeReference] + public BlackboardVariable MaxRange = new BlackboardVariable(20f); + + [SerializeReference] + public BlackboardVariable SelectionMode = + new BlackboardVariable(DistanceTargetSelectionMode.Farthest); + + protected override Status OnStart() + { + if (string.IsNullOrEmpty(Tag.Value)) + return Status.Failure; + + GameObject[] candidates = GameObject.FindGameObjectsWithTag(Tag.Value); + if (candidates == null || candidates.Length == 0) + return Status.Failure; + + float minRange = Mathf.Max(0f, MinRange.Value); + float maxRange = Mathf.Max(minRange, MaxRange.Value); + BossCombatBehaviorContext context = GameObject.GetComponent(); + + if (minRange <= 0f && context != null) + minRange = context.MobilityTriggerDistance; + + if (maxRange <= minRange) + { + EnemyBase enemyBase = GameObject.GetComponent(); + maxRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AggroRange : 20f; + } + + GameObject selectedTarget = SelectionMode.Value switch + { + DistanceTargetSelectionMode.Nearest => FindNearestTarget(candidates, minRange, maxRange), + DistanceTargetSelectionMode.Random => FindRandomTarget(candidates, minRange, maxRange), + _ => FindFarthestTarget(candidates, minRange, maxRange), + }; + + if (selectedTarget == null) + return Status.Failure; + + Target.Value = selectedTarget; + return Status.Success; + } + + private GameObject FindNearestTarget(GameObject[] candidates, float minRange, float maxRange) + { + GameObject bestTarget = null; + float bestDistance = float.MaxValue; + + for (int i = 0; i < candidates.Length; i++) + { + GameObject candidate = candidates[i]; + if (!IsValidTarget(candidate, minRange, maxRange, out float distance)) + continue; + + if (distance >= bestDistance) + continue; + + bestDistance = distance; + bestTarget = candidate; + } + + return bestTarget; + } + + private GameObject FindFarthestTarget(GameObject[] candidates, float minRange, float maxRange) + { + GameObject bestTarget = null; + float bestDistance = minRange; + + for (int i = 0; i < candidates.Length; i++) + { + GameObject candidate = candidates[i]; + if (!IsValidTarget(candidate, minRange, maxRange, out float distance)) + continue; + + if (distance <= bestDistance) + continue; + + bestDistance = distance; + bestTarget = candidate; + } + + return bestTarget; + } + + private GameObject FindRandomTarget(GameObject[] candidates, float minRange, float maxRange) + { + System.Collections.Generic.List validTargets = new System.Collections.Generic.List(); + + for (int i = 0; i < candidates.Length; i++) + { + GameObject candidate = candidates[i]; + if (!IsValidTarget(candidate, minRange, maxRange, out _)) + continue; + + validTargets.Add(candidate); + } + + if (validTargets.Count == 0) + return null; + + int randomIndex = UnityEngine.Random.Range(0, validTargets.Count); + return validTargets[randomIndex]; + } + + private bool IsValidTarget(GameObject candidate, float minRange, float maxRange, out float distance) + { + distance = 0f; + + if (candidate == null || !candidate.activeInHierarchy) + return false; + + if (Team.IsSameTeam(GameObject, candidate)) + return false; + + IDamageable damageable = candidate.GetComponent(); + if (damageable != null && damageable.IsDead) + return false; + + EnemyBase enemyBase = GameObject.GetComponent(); + float sightRange = enemyBase != null && enemyBase.Data != null + ? enemyBase.Data.AggroRange + : maxRange; + + distance = Vector3.Distance(GameObject.transform.position, candidate.transform.position); + if (distance < minRange || distance > maxRange || distance > sightRange) + return false; + + return true; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs.meta new file mode 100644 index 00000000..c45a57ae --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/SelectTargetByDistanceAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ce75af43cd1bd434495f187749228a63 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs new file mode 100644 index 00000000..43528456 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 기동 패턴을 실행하는 공통 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Use Mobility Pattern", + story: "기동 패턴 실행", + category: "Action", + id: "bb19ca5ae11a4d9586180f7cba9f76cc")] +public partial class UseMobilityPatternAction : UsePatternRoleActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Mobility; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs.meta new file mode 100644 index 00000000..0b8c90b0 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseMobilityPatternAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 137700b0db09e724899700f0da861132 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternAction.cs index 1a6f929a..cbd6a591 100644 --- a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternAction.cs +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternAction.cs @@ -1,9 +1,15 @@ using System; + +using Colosseum; using Colosseum.AI; +using Colosseum.Combat; +using Colosseum.Enemy; using Colosseum.Skills; + using Unity.Behavior; using Unity.Properties; using UnityEngine; + using Action = Unity.Behavior.Action; /// @@ -17,11 +23,13 @@ public partial class UsePatternAction : Action [SerializeReference] public BlackboardVariable Pattern; [SerializeReference] public BlackboardVariable Target; + private static readonly System.Collections.Generic.Dictionary patternReadyTimes = + new System.Collections.Generic.Dictionary(); + private SkillController skillController; private int currentStepIndex; private float waitEndTime; private bool isWaiting; - private float lastUsedTime = float.MinValue; protected override Status OnStart() { @@ -31,13 +39,21 @@ public partial class UsePatternAction : Action return Status.Failure; } - if (Time.time - lastUsedTime < Pattern.Value.Cooldown) + if (!IsPatternReady(GameObject, Pattern.Value)) { + LogDebug($"쿨다운 중: {Pattern.Value.PatternName}"); return Status.Failure; } if (Pattern.Value.Steps.Count == 0) { + LogDebug("스텝이 비어 있는 패턴이라 실패합니다."); + return Status.Failure; + } + + if (RequiresJumpTarget(Pattern.Value) && ResolveJumpTarget() == null) + { + LogDebug($"점프 타겟을 찾지 못해 실패: {Pattern.Value.PatternName}"); return Status.Failure; } @@ -76,7 +92,7 @@ public partial class UsePatternAction : Action if (currentStepIndex >= Pattern.Value.Steps.Count) { - lastUsedTime = Time.time; + MarkPatternUsed(GameObject, Pattern.Value); return Status.Success; } @@ -106,6 +122,16 @@ public partial class UsePatternAction : Action return Status.Failure; } + GameObject jumpTarget = null; + if (step.Skill.JumpToTarget) + { + jumpTarget = ResolveJumpTarget(); + if (jumpTarget == null) + { + return Status.Failure; + } + } + bool success = skillController.ExecuteSkill(step.Skill); if (!success) { @@ -113,15 +139,101 @@ public partial class UsePatternAction : Action return Status.Failure; } + LogDebug($"패턴 실행: {Pattern.Value.PatternName} / Step={currentStepIndex} / Skill={step.Skill.SkillName}"); + // jumpToTarget 스킬이면 타겟 위치 전달 if (step.Skill.JumpToTarget) { - if (Target?.Value == null) - Debug.LogWarning($"[UsePatternAction] '{step.Skill.SkillName}'은 JumpToTarget 스킬이지만 Target이 바인딩되지 않았습니다."); - else - GameObject.GetComponent()?.SetJumpTarget(Target.Value.transform.position); + GameObject.GetComponent()?.SetJumpTarget(jumpTarget.transform.position); } return Status.Running; } + + /// + /// 점프 대상이 근접 상태라면, 더 멀리 있는 유효 타겟으로 재선택합니다. + /// 도약 패턴이 전방 탱커 대신 원거리 플레이어를 징벌할 수 있도록 합니다. + /// + private GameObject ResolveJumpTarget() + { + GameObject currentTarget = Target?.Value; + EnemyBase enemyBase = GameObject.GetComponent(); + float maxJumpDistance = enemyBase?.Data != null ? enemyBase.Data.AggroRange : 20f; + return IsValidJumpTarget(currentTarget, maxJumpDistance) ? currentTarget : null; + } + + /// + /// 점프 타겟의 생존 여부, 팀, 거리 조건을 검사합니다. + /// + private bool IsValidJumpTarget(GameObject candidate, float maxDistance) + { + if (candidate == null || !candidate.activeInHierarchy) + return false; + + if (Team.IsSameTeam(GameObject, candidate)) + return false; + + IDamageable damageable = candidate.GetComponent(); + if (damageable != null && damageable.IsDead) + return false; + + float distance = Vector3.Distance(GameObject.transform.position, candidate.transform.position); + return distance <= maxDistance; + } + + /// + /// 패턴 안에 점프 타겟이 필요한 스텝이 있는지 확인합니다. + /// + private static bool RequiresJumpTarget(BossPatternData pattern) + { + if (pattern == null || pattern.Steps == null) + return false; + + for (int i = 0; i < pattern.Steps.Count; i++) + { + PatternStep step = pattern.Steps[i]; + if (step.Type == PatternStepType.Skill && step.Skill != null && step.Skill.JumpToTarget) + return true; + } + + return false; + } + + /// + /// 동일한 보스 오브젝트가 같은 패턴을 다시 사용할 수 있는지 확인합니다. + /// + public static bool IsPatternReady(GameObject owner, BossPatternData pattern) + { + if (owner == null || pattern == null) + return false; + + string cooldownKey = BuildCooldownKey(owner, pattern); + if (!patternReadyTimes.TryGetValue(cooldownKey, out float readyTime)) + return true; + + return Time.time >= readyTime; + } + + /// + /// 패턴 사용 직후 다음 사용 가능 시점을 기록합니다. + /// + public static void MarkPatternUsed(GameObject owner, BossPatternData pattern) + { + if (owner == null || pattern == null) + return; + + string cooldownKey = BuildCooldownKey(owner, pattern); + patternReadyTimes[cooldownKey] = Time.time + pattern.Cooldown; + } + + private static string BuildCooldownKey(GameObject owner, BossPatternData pattern) + { + return $"{owner.GetInstanceID()}_{pattern.GetInstanceID()}"; + } + + private void LogDebug(string message) + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + context?.LogDebug(nameof(UsePatternAction), message); + } } diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs new file mode 100644 index 00000000..06762d56 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs @@ -0,0 +1,57 @@ +using System; + +using Colosseum.AI; +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +/// +/// 지정된 공통 패턴 역할을 실행하는 액션 기반 클래스입니다. +/// +[Serializable, GeneratePropertyBag] +public abstract partial class UsePatternRoleActionBase : BossPatternActionBase +{ + /// + /// 현재 액션이 실행할 공통 패턴 역할입니다. + /// + protected abstract BossCombatPatternRole PatternRole { get; } + + protected override bool TryResolvePattern(out BossPatternData pattern, out GameObject target) + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + pattern = context != null ? context.GetPattern(PatternRole) : null; + target = Target != null ? Target.Value : null; + + if (pattern == null || !UsePatternAction.IsPatternReady(GameObject, pattern)) + return false; + + if (target == null && PatternRole.IsMeleeRole()) + target = ResolvePrimaryTarget(); + + if (target == null && PatternRole == BossCombatPatternRole.Mobility) + target = context != null ? context.FindMobilityTarget() : null; + + if (target == null) + return false; + + if (PatternRole.IsMeleeRole() && context != null) + context.RegisterPatternUse(PatternRole); + + return true; + } + + protected override GameObject ResolveStepTarget(GameObject fallbackTarget) + { + BossCombatBehaviorContext context = GameObject.GetComponent(); + if (PatternRole == BossCombatPatternRole.Mobility && context != null) + { + return context.IsValidMobilityTarget(fallbackTarget) + ? fallbackTarget + : context.FindMobilityTarget(); + } + + return base.ResolveStepTarget(fallbackTarget); + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs.meta new file mode 100644 index 00000000..bf61d208 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePatternRoleActionBase.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 33384929fd7ec3c4f9240ac748de185c \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs new file mode 100644 index 00000000..f6bf79f4 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 기본 패턴을 실행하는 공통 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Use Primary Pattern", + story: "기본 패턴 실행", + category: "Action", + id: "45d71c690f6342bcbbd348b6df5b77f1")] +public partial class UsePrimaryPatternAction : UsePatternRoleActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Primary; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs.meta new file mode 100644 index 00000000..a75ed8fa --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePrimaryPatternAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2d8de0b13ad776845a14b35e16485f53 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs new file mode 100644 index 00000000..785aaa19 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 징벌 패턴을 실행하는 공통 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Use Punish Pattern", + story: "징벌 패턴 실행", + category: "Action", + id: "55f3c204a22b42dca6ae96e555f11a70")] +public partial class UsePunishPatternAction : UsePatternRoleActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Punish; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs.meta new file mode 100644 index 00000000..f8b684ef --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UsePunishPatternAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 16cef0dbbe7946d46b3021b0c1802669 \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs new file mode 100644 index 00000000..19b4b796 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs @@ -0,0 +1,20 @@ +using System; + +using Colosseum.Enemy; + +using Unity.Behavior; +using Unity.Properties; + +/// +/// 보조 패턴을 실행하는 공통 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Use Secondary Pattern", + story: "보조 패턴 실행", + category: "Action", + id: "5169d341ce0c4400ae7fa3b58dde5b7a")] +public partial class UseSecondaryPatternAction : UsePatternRoleActionBase +{ + protected override BossCombatPatternRole PatternRole => BossCombatPatternRole.Secondary; +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs.meta new file mode 100644 index 00000000..8f2c03c7 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/UseSecondaryPatternAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 79cd3375939c8a244bad9d8e1f02a45d \ No newline at end of file diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs new file mode 100644 index 00000000..375f2302 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs @@ -0,0 +1,33 @@ +using System; + +using Colosseum.Combat; + +using Unity.Behavior; +using Unity.Properties; +using UnityEngine; + +using Action = Unity.Behavior.Action; + +/// +/// 현재 타겟이 살아 있는 유효 대상인지 확인하는 공통 체크 액션입니다. +/// +[Serializable, GeneratePropertyBag] +[NodeDescription( + name: "Validate Target", + story: "[Target]이 살아 있는 유효 대상인지 확인", + category: "Action", + id: "e9ec7a3b5a5447138ecf85ab0c57b21f")] +public partial class ValidateTargetAction : Action +{ + [SerializeReference] + public BlackboardVariable Target; + + protected override Status OnStart() + { + if (Target?.Value == null || !Target.Value.activeInHierarchy) + return Status.Failure; + + IDamageable damageable = Target.Value.GetComponent(); + return damageable != null && damageable.IsDead ? Status.Failure : Status.Success; + } +} diff --git a/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs.meta b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs.meta new file mode 100644 index 00000000..eea79c12 --- /dev/null +++ b/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4108d806232628e43839703188adeae8 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs b/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs new file mode 100644 index 00000000..39702278 --- /dev/null +++ b/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs @@ -0,0 +1,304 @@ +using System; +using System.Collections; +using System.Linq; +using System.Reflection; + +using UnityEditor; +using UnityEngine; + +namespace Colosseum.Editor +{ + /// + /// 드로그 Behavior Graph authoring 자산을 현재 BT 우선순위 구조로 재생성합니다. + /// + public static class RebuildDrogBehaviorAuthoringGraph + { + private const string GraphAssetPath = "Assets/_Game/AI/BT_Drog.asset"; + + [MenuItem("Tools/Colosseum/Rebuild Drog Behavior Authoring Graph")] + private static void Rebuild() + { + UnityEngine.Object graphAsset = AssetDatabase.LoadMainAssetAtPath(GraphAssetPath); + if (graphAsset == null) + { + Debug.LogError($"[DrogBTRebuild] 그래프 자산을 찾을 수 없습니다: {GraphAssetPath}"); + return; + } + + try + { + Type authoringGraphType = graphAsset.GetType(); + Assembly authoringAssembly = authoringGraphType.Assembly; + Assembly runtimeAssembly = typeof(Unity.Behavior.BehaviorGraph).Assembly; + + MethodInfo createNodeMethod = authoringGraphType.BaseType?.GetMethod("CreateNode", BindingFlags.Instance | BindingFlags.Public); + MethodInfo connectEdgeMethod = authoringGraphType.BaseType?.GetMethod("ConnectEdge", BindingFlags.Instance | BindingFlags.Public); + MethodInfo buildRuntimeGraphMethod = authoringGraphType.GetMethod("BuildRuntimeGraph", BindingFlags.Instance | BindingFlags.Public); + MethodInfo saveAssetMethod = authoringGraphType.BaseType?.GetMethod("SaveAsset", BindingFlags.Instance | BindingFlags.Public); + MethodInfo setAssetDirtyMethod = authoringGraphType.BaseType?.GetMethod("SetAssetDirty", BindingFlags.Instance | BindingFlags.Public); + MethodInfo getNodeInfoMethod = authoringAssembly.GetType("Unity.Behavior.NodeRegistry", true) + ?.GetMethod("GetInfo", BindingFlags.Static | BindingFlags.NonPublic); + + if (createNodeMethod == null || connectEdgeMethod == null || buildRuntimeGraphMethod == null || saveAssetMethod == null || setAssetDirtyMethod == null || getNodeInfoMethod == null) + { + Debug.LogError("[DrogBTRebuild] Behavior Authoring 리플렉션 메서드를 찾지 못했습니다."); + return; + } + + SerializedObject serializedObject = new SerializedObject(graphAsset); + SerializedProperty nodesProperty = serializedObject.FindProperty("m_Nodes"); + if (nodesProperty == null) + { + Debug.LogError("[DrogBTRebuild] m_Nodes 프로퍼티를 찾지 못했습니다."); + return; + } + + nodesProperty.ClearArray(); + serializedObject.ApplyModifiedPropertiesWithoutUndo(); + + object targetVariable = FindBlackboardVariableModel("Target"); + if (targetVariable == null) + { + Debug.LogError("[DrogBTRebuild] Target 블랙보드 변수를 찾지 못했습니다."); + return; + } + + object startNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.Start", true), new Vector2(420f, -620f)); + object repeatNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.RepeaterModifier", true), new Vector2(420f, -470f)); + object selectorNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SelectorComposite", true), new Vector2(420f, -280f)); + + object downSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(-620f, -40f)); + object leapSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(-220f, -40f)); + object slamSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(180f, -40f)); + object mainSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(580f, -40f)); + object slamFallbackSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(980f, -40f)); + object chaseSequence = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, runtimeAssembly.GetType("Unity.Behavior.SequenceComposite", true), new Vector2(1380f, -40f)); + + object downSelectNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(SelectNearestDownedTargetAction), new Vector2(-740f, 240f)); + object downReadyNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckPunishPatternReadyAction), new Vector2(-620f, 240f)); + object downUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(UsePunishPatternAction), new Vector2(-500f, 240f)); + + object leapSelectNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(SelectTargetByDistanceAction), new Vector2(-340f, 240f)); + object leapReadyNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckMobilityPatternReadyAction), new Vector2(-220f, 240f)); + object leapUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(UseMobilityPatternAction), new Vector2(-100f, 240f)); + + object slamRefreshNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(RefreshPrimaryTargetAction), new Vector2(0f, 240f)); + object slamHasTargetNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(ValidateTargetAction), new Vector2(120f, 240f)); + object slamRangeNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckTargetInAttackRangeAction), new Vector2(240f, 240f)); + object slamTurnNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckSecondaryPatternTurnAction), new Vector2(360f, 240f)); + object slamReadyNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckSecondaryPatternReadyAction), new Vector2(480f, 240f)); + object slamUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(UseSecondaryPatternAction), new Vector2(600f, 240f)); + + object mainRefreshNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(RefreshPrimaryTargetAction), new Vector2(520f, 240f)); + object mainHasTargetNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(ValidateTargetAction), new Vector2(640f, 240f)); + object mainRangeNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckTargetInAttackRangeAction), new Vector2(760f, 240f)); + object mainReadyNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckPrimaryPatternReadyAction), new Vector2(880f, 240f)); + object mainUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(UsePrimaryPatternAction), new Vector2(1000f, 240f)); + + object fallbackRefreshNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(RefreshPrimaryTargetAction), new Vector2(920f, 240f)); + object fallbackHasTargetNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(ValidateTargetAction), new Vector2(1040f, 240f)); + object fallbackRangeNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckTargetInAttackRangeAction), new Vector2(1160f, 240f)); + object fallbackReadyNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(CheckSecondaryPatternReadyAction), new Vector2(1280f, 240f)); + object fallbackUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(UseSecondaryPatternAction), new Vector2(1400f, 240f)); + + object chaseRefreshNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(RefreshPrimaryTargetAction), new Vector2(1320f, 240f)); + object chaseHasTargetNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(ValidateTargetAction), new Vector2(1440f, 240f)); + object chaseUseNode = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, typeof(ChaseTargetAction), new Vector2(1560f, 240f)); + + Connect(graphAsset, connectEdgeMethod, GetDefaultOutputPort(startNode), GetDefaultInputPort(repeatNode)); + Connect(graphAsset, connectEdgeMethod, GetDefaultOutputPort(repeatNode), GetDefaultInputPort(selectorNode)); + ConnectChildren(graphAsset, connectEdgeMethod, selectorNode, downSequence, leapSequence, slamSequence, mainSequence, slamFallbackSequence, chaseSequence); + + ConnectChildren(graphAsset, connectEdgeMethod, downSequence, downSelectNode, downReadyNode, downUseNode); + ConnectChildren(graphAsset, connectEdgeMethod, leapSequence, leapSelectNode, leapReadyNode, leapUseNode); + ConnectChildren(graphAsset, connectEdgeMethod, slamSequence, slamRefreshNode, slamHasTargetNode, slamRangeNode, slamTurnNode, slamReadyNode, slamUseNode); + ConnectChildren(graphAsset, connectEdgeMethod, mainSequence, mainRefreshNode, mainHasTargetNode, mainRangeNode, mainReadyNode, mainUseNode); + ConnectChildren(graphAsset, connectEdgeMethod, slamFallbackSequence, fallbackRefreshNode, fallbackHasTargetNode, fallbackRangeNode, fallbackReadyNode, fallbackUseNode); + ConnectChildren(graphAsset, connectEdgeMethod, chaseSequence, chaseRefreshNode, chaseHasTargetNode, chaseUseNode); + + LinkTarget(downSelectNode, targetVariable); + LinkTarget(downUseNode, targetVariable); + LinkTarget(leapSelectNode, targetVariable); + LinkTarget(leapUseNode, targetVariable); + LinkTarget(slamRefreshNode, targetVariable); + LinkTarget(slamHasTargetNode, targetVariable); + LinkTarget(slamRangeNode, targetVariable); + LinkTarget(slamUseNode, targetVariable); + LinkTarget(mainRefreshNode, targetVariable); + LinkTarget(mainHasTargetNode, targetVariable); + LinkTarget(mainRangeNode, targetVariable); + LinkTarget(mainUseNode, targetVariable); + LinkTarget(fallbackRefreshNode, targetVariable); + LinkTarget(fallbackHasTargetNode, targetVariable); + LinkTarget(fallbackRangeNode, targetVariable); + LinkTarget(fallbackUseNode, targetVariable); + LinkTarget(chaseRefreshNode, targetVariable); + LinkTarget(chaseHasTargetNode, targetVariable); + LinkTarget(chaseUseNode, targetVariable); + + SetStartRepeatFlags(startNode, repeat: true, allowMultipleRepeatsPerTick: false); + setAssetDirtyMethod.Invoke(graphAsset, new object[] { true }); + buildRuntimeGraphMethod.Invoke(graphAsset, new object[] { true }); + saveAssetMethod.Invoke(graphAsset, null); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + + Debug.Log("[DrogBTRebuild] 드로그 Behavior Graph authoring 자산 재구성이 완료되었습니다."); + } + catch (Exception exception) + { + Debug.LogException(exception); + } + } + + private static object CreateNode(UnityEngine.Object graphAsset, MethodInfo createNodeMethod, MethodInfo getNodeInfoMethod, Type runtimeType, Vector2 position) + { + if (runtimeType == null) + throw new InvalidOperationException("[DrogBTRebuild] 런타임 타입이 null입니다."); + + object nodeInfo = getNodeInfoMethod.Invoke(null, new object[] { runtimeType }); + if (nodeInfo == null) + throw new InvalidOperationException($"[DrogBTRebuild] NodeInfo를 찾지 못했습니다: {runtimeType.FullName}"); + + Type nodeInfoType = nodeInfo.GetType(); + FieldInfo modelTypeField = nodeInfoType.GetField("ModelType", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + object serializableType = modelTypeField?.GetValue(nodeInfo); + PropertyInfo serializableTypeValueProperty = serializableType?.GetType().GetProperty("Type", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + Type modelType = serializableTypeValueProperty?.GetValue(serializableType) as Type; + if (modelType == null) + throw new InvalidOperationException($"[DrogBTRebuild] ModelType을 찾지 못했습니다: {runtimeType.FullName}"); + + return createNodeMethod.Invoke(graphAsset, new object[] { modelType, position, null, new object[] { nodeInfo } }); + } + + private static void ConnectChildren(UnityEngine.Object graphAsset, MethodInfo connectEdgeMethod, object parentNode, params object[] children) + { + object outputPort = GetDefaultOutputPort(parentNode); + for (int i = 0; i < children.Length; i++) + { + Connect(graphAsset, connectEdgeMethod, outputPort, GetDefaultInputPort(children[i])); + } + } + + private static void Connect(UnityEngine.Object graphAsset, MethodInfo connectEdgeMethod, object outputPort, object inputPort) + { + if (outputPort == null || inputPort == null) + throw new InvalidOperationException("[DrogBTRebuild] 포트 연결 대상이 null입니다."); + + connectEdgeMethod.Invoke(graphAsset, new[] { outputPort, inputPort }); + } + + private static object GetDefaultInputPort(object node) + { + return GetDefaultPort(node, "TryDefaultInputPortModel"); + } + + private static object GetDefaultOutputPort(object node) + { + return GetDefaultPort(node, "TryDefaultOutputPortModel"); + } + + private static object GetDefaultPort(object node, string methodName) + { + MethodInfo method = node.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public); + object[] parameters = { null }; + bool success = method != null && (bool)method.Invoke(node, parameters); + return success ? parameters[0] : null; + } + + private static object FindBlackboardVariableModel(string variableName) + { + UnityEngine.Object blackboardAsset = AssetDatabase.LoadAllAssetsAtPath(GraphAssetPath) + .FirstOrDefault(asset => asset != null && asset.GetType().Name.Contains("BehaviorBlackboardAuthoringAsset", StringComparison.Ordinal)); + + if (blackboardAsset == null) + return null; + + PropertyInfo variablesProperty = blackboardAsset.GetType().GetProperty("Variables", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + FieldInfo variablesField = blackboardAsset.GetType().GetField("m_Variables", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + IEnumerable variables = variablesProperty?.GetValue(blackboardAsset) as IEnumerable ?? variablesField?.GetValue(blackboardAsset) as IEnumerable; + if (variables == null) + return null; + + foreach (object variable in variables) + { + if (variable == null) + continue; + + PropertyInfo nameProperty = variable.GetType().GetProperty("Name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + FieldInfo nameField = variable.GetType().GetField("Name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + string name = nameProperty?.GetValue(variable) as string ?? nameField?.GetValue(variable) as string; + if (name == variableName) + return variable; + } + + return null; + } + + private static void LinkTarget(object node, object targetVariable) + { + LinkFieldToVariable(node, "Target", typeof(GameObject), targetVariable); + } + + private static void LinkFieldToVariable(object node, string fieldName, Type fieldType, object variableModel) + { + MethodInfo getVariableLinkMethod = node.GetType().GetMethod("GetVariableLink", BindingFlags.Instance | BindingFlags.Public); + object variableLink = getVariableLinkMethod?.Invoke(node, new object[] { fieldName, fieldType }); + if (variableLink != null) + { + PropertyInfo blackboardVariableProperty = variableLink.GetType().GetProperty("BlackboardVariable", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + blackboardVariableProperty?.SetValue(variableLink, variableModel); + } + + object fieldModel = FindFieldModel(node, fieldName); + if (fieldModel == null) + return; + + PropertyInfo linkedVariableProperty = fieldModel.GetType().GetProperty("LinkedVariable", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + FieldInfo linkedVariableField = fieldModel.GetType().GetField("LinkedVariable", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + if (linkedVariableProperty != null && linkedVariableProperty.CanWrite) + { + linkedVariableProperty.SetValue(fieldModel, variableModel); + } + else + { + linkedVariableField?.SetValue(fieldModel, variableModel); + } + } + + private static object FindFieldModel(object node, string fieldName) + { + FieldInfo fieldValuesField = node.GetType().GetField("m_FieldValues", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + PropertyInfo fieldValuesProperty = node.GetType().GetProperty("FieldValues", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + IEnumerable fieldValues = fieldValuesField?.GetValue(node) as IEnumerable ?? fieldValuesProperty?.GetValue(node) as IEnumerable; + if (fieldValues == null) + return null; + + foreach (object fieldModel in fieldValues) + { + if (fieldModel == null) + continue; + + PropertyInfo fieldNameProperty = fieldModel.GetType().GetProperty("FieldName", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + FieldInfo fieldNameField = fieldModel.GetType().GetField("FieldName", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + string currentFieldName = fieldNameProperty?.GetValue(fieldModel) as string ?? fieldNameField?.GetValue(fieldModel) as string; + if (currentFieldName == fieldName) + return fieldModel; + } + + return null; + } + + private static void SetStartRepeatFlags(object startNode, bool repeat, bool allowMultipleRepeatsPerTick) + { + Type startNodeType = startNode.GetType(); + FieldInfo repeatField = startNodeType.GetField("Repeat", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + FieldInfo allowField = startNodeType.GetField("AllowMultipleRepeatsPerTick", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + repeatField?.SetValue(startNode, repeat); + allowField?.SetValue(startNode, allowMultipleRepeatsPerTick); + } + } +} diff --git a/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs.meta b/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs.meta new file mode 100644 index 00000000..870b9918 --- /dev/null +++ b/Assets/_Game/Scripts/Editor/RebuildDrogBehaviorAuthoringGraph.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 32898a7b79779e04d8dea1e3530df132 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs b/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs new file mode 100644 index 00000000..983c5529 --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs @@ -0,0 +1,520 @@ +using System.Collections; +using System.Collections.Generic; + +using Colosseum.AI; +using Colosseum.Combat; +using Colosseum.Player; +using Colosseum.Skills; + +using Unity.Behavior; +using Unity.Netcode; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Colosseum.Enemy +{ + /// + /// 보스 공통 전투 BT가 참조하는 전투 컨텍스트입니다. + /// 패턴 슬롯, 거리 기준, 페이즈별 주기, 공통 타겟 판정 정보를 제공합니다. + /// + [DisallowMultipleComponent] + [RequireComponent(typeof(BossEnemy))] + [RequireComponent(typeof(SkillController))] + public abstract class BossCombatBehaviorContext : NetworkBehaviour + { + [Header("References")] + [SerializeField] protected BossEnemy bossEnemy; + [SerializeField] protected EnemyBase enemyBase; + [SerializeField] protected SkillController skillController; + [SerializeField] protected UnityEngine.AI.NavMeshAgent navMeshAgent; + [SerializeField] protected BehaviorGraphAgent behaviorGraphAgent; + + [Header("Pattern Data")] + [Tooltip("기본 근접 압박 패턴")] + [FormerlySerializedAs("mainPattern")] + [SerializeField] protected BossPatternData primaryPattern; + + [Tooltip("보조 근접 압박 패턴")] + [FormerlySerializedAs("slamPattern")] + [SerializeField] protected BossPatternData secondaryPattern; + + [Tooltip("기동 또는 거리 징벌 패턴")] + [FormerlySerializedAs("leapPattern")] + [SerializeField] protected BossPatternData mobilityPattern; + + [Tooltip("특정 상황에서 우선 발동하는 징벌 패턴")] + [FormerlySerializedAs("downPunishPattern")] + [SerializeField] protected BossPatternData punishPattern; + + [Header("Phase Thresholds")] + [Tooltip("2페이즈 진입 체력 비율")] + [Range(0f, 1f)] [SerializeField] protected float phase2HealthThreshold = 0.75f; + + [Tooltip("3페이즈 진입 체력 비율")] + [Range(0f, 1f)] [SerializeField] protected float phase3HealthThreshold = 0.4f; + + [Header("Targeting")] + [Tooltip("타겟 재탐색 주기")] + [FormerlySerializedAs("targetRefreshInterval")] + [Min(0.05f)] [SerializeField] protected float primaryTargetRefreshInterval = 0.2f; + + [Tooltip("기동 패턴을 고려하기 시작하는 거리")] + [FormerlySerializedAs("leapDistanceThreshold")] + [Min(0f)] [SerializeField] protected float mobilityTriggerDistance = 8f; + + [Tooltip("징벌 패턴을 고려할 최대 반경")] + [FormerlySerializedAs("downPunishSearchRadius")] + [Min(0f)] [SerializeField] protected float punishSearchRadius = 6f; + + [Header("Pattern Cadence")] + [Tooltip("1페이즈에서 몇 번의 근접 패턴마다 보조 패턴을 섞을지")] + [FormerlySerializedAs("phase1SlamInterval")] + [Min(1)] [SerializeField] protected int phase1SecondaryInterval = 3; + + [Tooltip("2페이즈에서 몇 번의 근접 패턴마다 보조 패턴을 섞을지")] + [FormerlySerializedAs("phase2SlamInterval")] + [Min(1)] [SerializeField] protected int phase2SecondaryInterval = 2; + + [Tooltip("3페이즈에서 몇 번의 근접 패턴마다 보조 패턴을 섞을지")] + [FormerlySerializedAs("phase3SlamInterval")] + [Min(1)] [SerializeField] protected int phase3SecondaryInterval = 2; + + [Header("Behavior")] + [Tooltip("전용 컨텍스트 사용 시 기존 BehaviorGraph를 비활성화할지 여부")] + [SerializeField] protected bool disableBehaviorGraph = true; + + [Tooltip("디버그 로그 출력 여부")] + [SerializeField] protected bool debugMode = false; + + protected readonly Dictionary patternCooldownTracker = new Dictionary(); + + protected Coroutine activePatternCoroutine; + protected GameObject currentTarget; + protected float nextTargetRefreshTime; + protected int meleePatternCounter; + + /// + /// 전용 컨텍스트 사용 시 BehaviorGraph를 비활성화할지 여부 + /// + public bool DisableBehaviorGraph => disableBehaviorGraph; + + /// + /// 기동 패턴을 고려하는 최소 거리 + /// + public float MobilityTriggerDistance => mobilityTriggerDistance; + + /// + /// 징벌 패턴을 고려하는 최대 반경 + /// + public float PunishSearchRadius => punishSearchRadius; + + /// + /// 디버그 로그 출력 여부 + /// + public bool DebugModeEnabled => debugMode; + + /// + /// 현재 보스 패턴 페이즈 + /// + public int CurrentPatternPhase + { + get + { + float healthRatio = bossEnemy != null && bossEnemy.MaxHealth > 0f + ? bossEnemy.CurrentHealth / bossEnemy.MaxHealth + : 1f; + + if (healthRatio <= phase3HealthThreshold) + return 3; + + if (healthRatio <= phase2HealthThreshold) + return 2; + + return 1; + } + } + + protected virtual void Awake() + { + ResolveReferences(); + } + + public override void OnNetworkSpawn() + { + ResolveReferences(); + + if (!IsServer) + enabled = false; + } + + protected virtual void Update() + { + if (!IsServer) + return; + + ResolveReferences(); + if (bossEnemy == null || enemyBase == null || skillController == null) + return; + + if (bossEnemy.IsDead || bossEnemy.IsTransitioning) + return; + + if (!disableBehaviorGraph) + return; + + RefreshTargetIfNeeded(); + UpdateMovement(); + + if (skillController.IsPlayingAnimation) + return; + + if (TryStartMobilityPattern()) + return; + + TryStartPrimaryLoopPattern(); + } + + /// + /// 현재 역할의 패턴 데이터를 반환합니다. + /// + public BossPatternData GetPattern(BossCombatPatternRole role) + { + return role switch + { + BossCombatPatternRole.Primary => primaryPattern, + BossCombatPatternRole.Secondary => secondaryPattern, + BossCombatPatternRole.Mobility => mobilityPattern, + BossCombatPatternRole.Punish => punishPattern, + _ => null, + }; + } + + /// + /// 다음 근접 패턴 차례가 보조 패턴인지 여부 + /// + public bool IsNextSecondaryPattern() + { + int secondaryInterval = GetSecondaryIntervalForPhase(CurrentPatternPhase); + if (secondaryInterval <= 1) + return true; + + return (meleePatternCounter + 1) % secondaryInterval == 0; + } + + /// + /// 현재 페이즈 기준의 보조 근접 패턴 주기를 반환합니다. + /// + public int GetSecondaryIntervalForPhase(int phase) + { + return phase switch + { + 1 => Mathf.Max(1, phase1SecondaryInterval), + 2 => Mathf.Max(1, phase2SecondaryInterval), + _ => Mathf.Max(1, phase3SecondaryInterval), + }; + } + + /// + /// 근접 패턴 사용 카운터를 갱신합니다. + /// + public void RegisterPatternUse(BossCombatPatternRole role) + { + if (!role.IsMeleeRole()) + return; + + meleePatternCounter++; + } + + /// + /// 살아 있는 적대 대상인지 확인합니다. + /// + public bool IsValidHostileTarget(GameObject candidate) + { + if (candidate == null || !candidate.activeInHierarchy) + return false; + + if (Team.IsSameTeam(gameObject, candidate)) + return false; + + IDamageable damageable = candidate.GetComponent(); + return damageable == null || !damageable.IsDead; + } + + /// + /// 기동 패턴 대상으로 유효한지 확인합니다. + /// + public bool IsValidMobilityTarget(GameObject candidate) + { + if (!IsValidHostileTarget(candidate)) + return false; + + float maxDistance = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AggroRange : 20f; + float distance = Vector3.Distance(transform.position, candidate.transform.position); + return distance >= mobilityTriggerDistance && distance <= maxDistance; + } + + /// + /// 기동 패턴 대상으로 사용할 수 있는 가장 먼 유효 타겟을 찾습니다. + /// + public GameObject FindMobilityTarget() + { + GameObject[] candidates = GameObject.FindGameObjectsWithTag("Player"); + GameObject farthestTarget = null; + float bestDistance = mobilityTriggerDistance; + float maxDistance = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AggroRange : 20f; + + for (int i = 0; i < candidates.Length; i++) + { + GameObject candidate = candidates[i]; + if (!IsValidMobilityTarget(candidate)) + continue; + + float distance = Vector3.Distance(transform.position, candidate.transform.position); + if (distance > maxDistance || distance <= bestDistance) + continue; + + bestDistance = distance; + farthestTarget = candidate; + } + + return farthestTarget; + } + + /// + /// 가장 가까운 생존 플레이어를 찾습니다. + /// + public GameObject FindNearestLivingTarget() + { + PlayerNetworkController[] players = FindObjectsByType(FindObjectsSortMode.None); + + GameObject nearestTarget = null; + float nearestDistance = float.MaxValue; + float aggroRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity; + + for (int i = 0; i < players.Length; i++) + { + PlayerNetworkController player = players[i]; + if (player == null || player.IsDead || !player.gameObject.activeInHierarchy) + continue; + + GameObject candidate = player.gameObject; + if (!IsValidHostileTarget(candidate)) + continue; + + float distance = Vector3.Distance(transform.position, candidate.transform.position); + if (distance > aggroRange || distance >= nearestDistance) + continue; + + nearestDistance = distance; + nearestTarget = candidate; + } + + return nearestTarget; + } + + /// + /// 로그를 출력합니다. + /// + public void LogDebug(string source, string message) + { + if (debugMode) + Debug.Log($"[{source}] {message}"); + } + + protected virtual bool TryStartPrimaryLoopPattern() + { + if (currentTarget == null) + return false; + + float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); + float attackRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; + if (distanceToTarget > attackRange + 0.25f) + return false; + + BossPatternData selectedPattern = SelectPrimaryLoopPattern(); + if (selectedPattern == null) + return false; + + StartPattern(selectedPattern, currentTarget); + return true; + } + + protected virtual bool TryStartMobilityPattern() + { + BossPatternData pattern = GetPattern(BossCombatPatternRole.Mobility); + if (!IsPatternReady(pattern)) + return false; + + GameObject target = FindMobilityTarget(); + if (target == null) + return false; + + currentTarget = target; + StartPattern(pattern, target); + return true; + } + + protected virtual BossPatternData SelectPrimaryLoopPattern() + { + BossPatternData primary = GetPattern(BossCombatPatternRole.Primary); + BossPatternData secondary = GetPattern(BossCombatPatternRole.Secondary); + + bool canUsePrimary = IsPatternReady(primary); + bool canUseSecondary = IsPatternReady(secondary); + + if (canUseSecondary && IsNextSecondaryPattern()) + { + meleePatternCounter++; + return secondary; + } + + if (canUsePrimary) + { + meleePatternCounter++; + return primary; + } + + if (canUseSecondary) + { + meleePatternCounter++; + return secondary; + } + + return null; + } + + protected virtual void StartPattern(BossPatternData pattern, GameObject target) + { + if (pattern == null || activePatternCoroutine != null) + return; + + LogDebug(GetType().Name, $"패턴 시작: {pattern.PatternName} / Target={(target != null ? target.name : "None")} / Phase={CurrentPatternPhase}"); + activePatternCoroutine = StartCoroutine(RunPatternCoroutine(pattern, target)); + } + + protected virtual IEnumerator RunPatternCoroutine(BossPatternData pattern, GameObject target) + { + StopMovement(); + bool completed = true; + + for (int i = 0; i < pattern.Steps.Count; i++) + { + PatternStep step = pattern.Steps[i]; + if (step.Type == PatternStepType.Wait) + { + yield return new WaitForSeconds(step.Duration); + continue; + } + + if (step.Skill == null) + { + completed = false; + Debug.LogWarning($"[{GetType().Name}] 패턴 스텝 스킬이 비어 있습니다. Pattern={pattern.PatternName}, Index={i}"); + break; + } + + if (step.Skill.JumpToTarget && target != null) + { + enemyBase?.SetJumpTarget(target.transform.position); + } + + if (!skillController.ExecuteSkill(step.Skill)) + { + completed = false; + LogDebug(GetType().Name, $"스킬 실행 실패: {step.Skill.SkillName}"); + break; + } + + yield return new WaitUntil(() => skillController == null || !skillController.IsPlayingAnimation || bossEnemy == null || bossEnemy.IsDead); + if (bossEnemy == null || bossEnemy.IsDead) + break; + } + + if (completed) + { + patternCooldownTracker[pattern] = Time.time + pattern.Cooldown; + } + + activePatternCoroutine = null; + currentTarget = target; + } + + protected bool IsPatternReady(BossPatternData pattern) + { + if (pattern == null || pattern.Steps == null || pattern.Steps.Count == 0) + return false; + + if (!patternCooldownTracker.TryGetValue(pattern, out float readyTime)) + return true; + + return Time.time >= readyTime; + } + + protected virtual void RefreshTargetIfNeeded() + { + if (Time.time < nextTargetRefreshTime) + return; + + nextTargetRefreshTime = Time.time + primaryTargetRefreshInterval; + GameObject highestThreatTarget = enemyBase.GetHighestThreatTarget(currentTarget, null, enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity); + currentTarget = highestThreatTarget != null ? highestThreatTarget : FindNearestLivingTarget(); + } + + protected virtual void UpdateMovement() + { + if (navMeshAgent == null || !navMeshAgent.enabled) + return; + + if (skillController != null && skillController.IsPlayingAnimation) + { + StopMovement(); + return; + } + + if (currentTarget == null) + { + StopMovement(); + return; + } + + float attackRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; + float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); + if (distanceToTarget <= attackRange) + { + StopMovement(); + return; + } + + navMeshAgent.isStopped = false; + navMeshAgent.stoppingDistance = attackRange; + navMeshAgent.SetDestination(currentTarget.transform.position); + } + + protected void StopMovement() + { + if (navMeshAgent == null || !navMeshAgent.enabled) + return; + + navMeshAgent.isStopped = true; + navMeshAgent.ResetPath(); + } + + protected virtual void ResolveReferences() + { + if (bossEnemy == null) + bossEnemy = GetComponent(); + + if (enemyBase == null) + enemyBase = GetComponent(); + + if (skillController == null) + skillController = GetComponent(); + + if (navMeshAgent == null) + navMeshAgent = GetComponent(); + + if (behaviorGraphAgent == null) + behaviorGraphAgent = GetComponent(); + } + } +} diff --git a/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs.meta b/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs.meta new file mode 100644 index 00000000..811a0b3f --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/BossCombatBehaviorContext.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3568a8ab7f49c5242a8f7c4bc655b68d \ No newline at end of file diff --git a/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs b/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs new file mode 100644 index 00000000..cd6c2e4c --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs @@ -0,0 +1,27 @@ +namespace Colosseum.Enemy +{ + /// + /// 보스 전투 BT에서 사용하는 공통 패턴 역할 구분값입니다. + /// + public enum BossCombatPatternRole + { + Primary = 0, + Secondary = 1, + Mobility = 2, + Punish = 3, + } + + /// + /// 공통 패턴 역할 보조 확장 메서드입니다. + /// + public static class BossCombatPatternRoleExtensions + { + /// + /// 현재 역할이 근접 순환 패턴인지 반환합니다. + /// + public static bool IsMeleeRole(this BossCombatPatternRole role) + { + return role == BossCombatPatternRole.Primary || role == BossCombatPatternRole.Secondary; + } + } +} diff --git a/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs.meta b/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs.meta new file mode 100644 index 00000000..30934732 --- /dev/null +++ b/Assets/_Game/Scripts/Enemy/BossCombatPatternRole.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ee34c0af35cdfbd45baf0a6b9dcc2dd9 \ No newline at end of file diff --git a/Assets/_Game/Scripts/Enemy/BossEnemy.cs b/Assets/_Game/Scripts/Enemy/BossEnemy.cs index 1dcc43c1..4a92b084 100644 --- a/Assets/_Game/Scripts/Enemy/BossEnemy.cs +++ b/Assets/_Game/Scripts/Enemy/BossEnemy.cs @@ -33,7 +33,7 @@ namespace Colosseum.Enemy // 컴포넌트 private BehaviorGraphAgent behaviorAgent; - private DrogPatternController drogPatternController; + private BossCombatBehaviorContext combatBehaviorContext; // 페이즈 상태 private int currentPhaseIndex = 0; @@ -78,10 +78,10 @@ namespace Colosseum.Enemy behaviorAgent = gameObject.AddComponent(); } - drogPatternController = GetComponent(); + combatBehaviorContext = GetComponent(); // 초기 AI 설정 - if (IsServer && drogPatternController != null && drogPatternController.DisableBehaviorGraph) + if (IsServer && combatBehaviorContext != null && combatBehaviorContext.DisableBehaviorGraph) { behaviorAgent.enabled = false; behaviorAgent.Graph = null; diff --git a/Assets/_Game/Scripts/Enemy/DrogPatternController.cs b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs index d2b483f4..7c7a618e 100644 --- a/Assets/_Game/Scripts/Enemy/DrogPatternController.cs +++ b/Assets/_Game/Scripts/Enemy/DrogPatternController.cs @@ -1,408 +1,10 @@ -using System.Collections; -using System.Collections.Generic; - -using UnityEngine; -using Unity.Netcode; - -using Colosseum.AI; -using Colosseum.Player; -using Colosseum.Skills; - namespace Colosseum.Enemy { /// - /// 드로그 전용 패턴 선택 컨트롤러입니다. - /// 기본 루프, 도약, 다운 추가타 같은 고우선 패턴을 직접 선택합니다. + /// 드로그가 사용하는 보스 전투 컨텍스트 컴포넌트입니다. + /// 현재는 공통 보스 전투 BT 프레임워크를 그대로 사용합니다. /// - [DisallowMultipleComponent] - [RequireComponent(typeof(BossEnemy))] - [RequireComponent(typeof(SkillController))] - public class DrogPatternController : NetworkBehaviour + public class DrogPatternController : BossCombatBehaviorContext { - [Header("References")] - [SerializeField] private BossEnemy bossEnemy; - [SerializeField] private EnemyBase enemyBase; - [SerializeField] private SkillController skillController; - [SerializeField] private UnityEngine.AI.NavMeshAgent navMeshAgent; - - [Header("Pattern Data")] - [Tooltip("기본 근접 압박 패턴")] - [SerializeField] private BossPatternData mainPattern; - - [Tooltip("먼 대상 징벌용 도약 패턴")] - [SerializeField] private BossPatternData leapPattern; - - [Tooltip("다운 대상이 있을 때 우선 발동하는 광역 추가타 패턴")] - [SerializeField] private BossPatternData downPunishPattern; - - [Header("Phase Thresholds")] - [Tooltip("2페이즈 진입 체력 비율")] - [Range(0f, 1f)] [SerializeField] private float phase2HealthThreshold = 0.75f; - - [Tooltip("3페이즈 진입 체력 비율")] - [Range(0f, 1f)] [SerializeField] private float phase3HealthThreshold = 0.4f; - - [Header("Targeting")] - [Tooltip("타겟 재탐색 주기")] - [Min(0.05f)] [SerializeField] private float targetRefreshInterval = 0.2f; - - [Tooltip("도약 패턴을 고려하기 시작하는 거리")] - [Min(0f)] [SerializeField] private float leapDistanceThreshold = 8f; - - [Tooltip("다운 추가타를 고려할 최대 반경")] - [Min(0f)] [SerializeField] private float downPunishSearchRadius = 6f; - - [Header("Behavior")] - [Tooltip("드로그 전용 컨트롤러 사용 시 기존 BehaviorGraph를 비활성화할지 여부")] - [SerializeField] private bool disableBehaviorGraph = true; - - [Tooltip("디버그 로그 출력 여부")] - [SerializeField] private bool debugMode = false; - - private readonly Dictionary patternCooldownTracker = new Dictionary(); - - private Coroutine activePatternCoroutine; - private GameObject currentTarget; - private float nextTargetRefreshTime; - - /// - /// 드로그 컨트롤러 사용 시 BehaviorGraph를 비활성화할지 여부 - /// - public bool DisableBehaviorGraph => disableBehaviorGraph; - - /// - /// 현재 전용 패턴 실행 중인지 여부 - /// - public bool IsExecutingPattern => activePatternCoroutine != null; - - /// - /// 현재 드로그 패턴 페이즈 - /// - public int CurrentPatternPhase - { - get - { - float healthRatio = bossEnemy != null && bossEnemy.MaxHealth > 0f - ? bossEnemy.CurrentHealth / bossEnemy.MaxHealth - : 1f; - - if (healthRatio <= phase3HealthThreshold) - return 3; - - if (healthRatio <= phase2HealthThreshold) - return 2; - - return 1; - } - } - - private void Awake() - { - ResolveReferences(); - } - - public override void OnNetworkSpawn() - { - ResolveReferences(); - - if (!IsServer) - { - enabled = false; - } - } - - private void Update() - { - if (!IsServer) - return; - - ResolveReferences(); - - if (bossEnemy == null || enemyBase == null || skillController == null) - return; - - if (bossEnemy.IsDead || bossEnemy.IsTransitioning) - return; - - RefreshTargetIfNeeded(); - UpdateMovement(); - - if (activePatternCoroutine != null || skillController.IsPlayingAnimation) - return; - - if (TryStartDownPunishPattern()) - return; - - TryStartMainPattern(); - } - - private bool TryStartDownPunishPattern() - { - if (!IsPatternReady(downPunishPattern)) - return false; - - GameObject downedTarget = FindNearestDownedTarget(); - if (downedTarget == null) - return false; - - StartPattern(downPunishPattern, downedTarget); - return true; - } - - private bool TryStartMainPattern() - { - if (currentTarget == null) - return false; - - float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); - - if (distanceToTarget >= leapDistanceThreshold && IsPatternReady(leapPattern)) - { - StartPattern(leapPattern, currentTarget); - return true; - } - - float attackRange = enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; - if (distanceToTarget <= attackRange + 0.25f && IsPatternReady(mainPattern)) - { - StartPattern(mainPattern, currentTarget); - return true; - } - - return false; - } - - private void StartPattern(BossPatternData pattern, GameObject target) - { - if (pattern == null || activePatternCoroutine != null) - return; - - if (debugMode) - { - string targetName = target != null ? target.name : "None"; - Debug.Log($"[DrogPattern] 패턴 시작: {pattern.PatternName} / Target={targetName} / Phase={CurrentPatternPhase}"); - } - - activePatternCoroutine = StartCoroutine(RunPatternCoroutine(pattern, target)); - } - - private IEnumerator RunPatternCoroutine(BossPatternData pattern, GameObject target) - { - StopMovement(); - - bool completed = true; - BossPatternData chainedPattern = null; - GameObject chainedTarget = null; - - for (int i = 0; i < pattern.Steps.Count; i++) - { - PatternStep step = pattern.Steps[i]; - - if (step.Type == PatternStepType.Wait) - { - yield return new WaitForSeconds(step.Duration); - continue; - } - - if (step.Skill == null) - { - completed = false; - Debug.LogWarning($"[DrogPattern] 패턴 스텝 스킬이 비어 있습니다. Pattern={pattern.PatternName}, Index={i}"); - break; - } - - if (step.Skill.JumpToTarget && target != null) - { - enemyBase?.SetJumpTarget(target.transform.position); - } - - if (!skillController.ExecuteSkill(step.Skill)) - { - completed = false; - if (debugMode) - { - Debug.LogWarning($"[DrogPattern] 스킬 실행 실패: {step.Skill.SkillName}"); - } - break; - } - - yield return new WaitUntil(() => skillController == null || !skillController.IsPlayingAnimation || bossEnemy == null || bossEnemy.IsDead); - - if (bossEnemy == null || bossEnemy.IsDead) - { - completed = false; - break; - } - - if (pattern != downPunishPattern && TryPrepareDownPunishChain(out chainedTarget)) - { - chainedPattern = downPunishPattern; - break; - } - } - - if (completed) - { - patternCooldownTracker[pattern] = Time.time + pattern.Cooldown; - } - - activePatternCoroutine = null; - - if (chainedPattern != null && chainedTarget != null && bossEnemy != null && !bossEnemy.IsDead) - { - StartPattern(chainedPattern, chainedTarget); - } - } - - private bool IsPatternReady(BossPatternData pattern) - { - if (pattern == null || pattern.Steps == null || pattern.Steps.Count == 0) - return false; - - if (!patternCooldownTracker.TryGetValue(pattern, out float readyTime)) - return true; - - return Time.time >= readyTime; - } - - private void RefreshTargetIfNeeded() - { - if (Time.time < nextTargetRefreshTime) - return; - - nextTargetRefreshTime = Time.time + targetRefreshInterval; - - GameObject highestThreatTarget = enemyBase.GetHighestThreatTarget(currentTarget, null, enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity); - currentTarget = highestThreatTarget != null ? highestThreatTarget : FindNearestLivingPlayer(); - } - - private void UpdateMovement() - { - if (navMeshAgent == null || !navMeshAgent.enabled) - return; - - if (activePatternCoroutine != null || (skillController != null && skillController.IsPlayingAnimation)) - { - StopMovement(); - return; - } - - if (currentTarget == null) - { - StopMovement(); - return; - } - - float attackRange = enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; - float distanceToTarget = Vector3.Distance(transform.position, currentTarget.transform.position); - if (distanceToTarget <= attackRange) - { - StopMovement(); - return; - } - - navMeshAgent.isStopped = false; - navMeshAgent.SetDestination(currentTarget.transform.position); - } - - private void StopMovement() - { - if (navMeshAgent == null || !navMeshAgent.enabled) - return; - - navMeshAgent.isStopped = true; - navMeshAgent.ResetPath(); - } - - private GameObject FindNearestDownedTarget() - { - HitReactionController[] hitReactionControllers = FindObjectsByType(FindObjectsSortMode.None); - - GameObject bestTarget = null; - float bestDistance = float.MaxValue; - - for (int i = 0; i < hitReactionControllers.Length; i++) - { - HitReactionController controller = hitReactionControllers[i]; - if (controller == null || !controller.IsDowned) - continue; - - GameObject candidate = controller.gameObject; - if (candidate == null || !candidate.activeInHierarchy || Team.IsSameTeam(gameObject, candidate)) - continue; - - float distance = Vector3.Distance(transform.position, candidate.transform.position); - if (distance > downPunishSearchRadius || distance >= bestDistance) - continue; - - bestDistance = distance; - bestTarget = candidate; - } - - return bestTarget; - } - - private bool TryPrepareDownPunishChain(out GameObject downedTarget) - { - downedTarget = null; - - if (!IsPatternReady(downPunishPattern)) - return false; - - downedTarget = FindNearestDownedTarget(); - if (downedTarget == null) - return false; - - if (debugMode) - { - Debug.Log($"[DrogPattern] 다운 대상 감지, 다운 추가타 연계 준비: {downedTarget.name}"); - } - - return true; - } - - private GameObject FindNearestLivingPlayer() - { - PlayerNetworkController[] players = FindObjectsByType(FindObjectsSortMode.None); - - GameObject bestTarget = null; - float bestDistance = float.MaxValue; - float aggroRange = enemyBase.Data != null ? enemyBase.Data.AggroRange : Mathf.Infinity; - - for (int i = 0; i < players.Length; i++) - { - PlayerNetworkController player = players[i]; - if (player == null || player.IsDead || !player.gameObject.activeInHierarchy) - continue; - - GameObject candidate = player.gameObject; - if (Team.IsSameTeam(gameObject, candidate)) - continue; - - float distance = Vector3.Distance(transform.position, candidate.transform.position); - if (distance > aggroRange || distance >= bestDistance) - continue; - - bestDistance = distance; - bestTarget = candidate; - } - - return bestTarget; - } - - private void ResolveReferences() - { - if (bossEnemy == null) - bossEnemy = GetComponent(); - - if (enemyBase == null) - enemyBase = GetComponent(); - - if (skillController == null) - skillController = GetComponent(); - - if (navMeshAgent == null) - navMeshAgent = GetComponent(); - } } } diff --git a/Tools/Reload-Obsidian.ps1 b/Tools/Reload-Obsidian.ps1 new file mode 100644 index 00000000..956fcbca --- /dev/null +++ b/Tools/Reload-Obsidian.ps1 @@ -0,0 +1,13 @@ +param( + [string]$VaultName = "Obsidian Vault" +) + +$obsidianPath = "C:\Program Files\Obsidian\Obsidian.exe" + +if (-not (Test-Path $obsidianPath)) +{ + Write-Error "Obsidian.exe를 찾을 수 없습니다: $obsidianPath" + exit 1 +} + +& $obsidianPath reload vault=$VaultName