diff --git a/Assets/GadGame/Animations/SlideUp.anim b/Assets/GadGame/Animations/SlideUp.anim new file mode 100644 index 0000000..a2187ba --- /dev/null +++ b/Assets/GadGame/Animations/SlideUp.anim @@ -0,0 +1,140 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SlideUp + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 15 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 538195251 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 15 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/GadGame/Animations/SlideUp.anim.meta b/Assets/GadGame/Animations/SlideUp.anim.meta new file mode 100644 index 0000000..0605a54 --- /dev/null +++ b/Assets/GadGame/Animations/SlideUp.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0b7eba1a3bd1509a968fc598b7d825e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GadGame/Animations/SlideUp.controller b/Assets/GadGame/Animations/SlideUp.controller new file mode 100644 index 0000000..fe9507e --- /dev/null +++ b/Assets/GadGame/Animations/SlideUp.controller @@ -0,0 +1,156 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-7644380248609173263 +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: -3003661658654272151} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-6822351366008302473 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -5340985536363538722} + m_Position: {x: 30, y: 320, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3003661658654272151} + m_Position: {x: -90, y: 230, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -3003661658654272151} +--- !u!1102 &-5340985536363538722 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Animation + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -7644380248609173263} + 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: 7400000, guid: d0b7eba1a3bd1509a968fc598b7d825e, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-3003661658654272151 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1718630856622086828} + 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: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SlideUp + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: DoAnimation + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -6822351366008302473} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &1718630856622086828 +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: DoAnimation + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -5340985536363538722} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Assets/GadGame/Animations/SlideUp.controller.meta b/Assets/GadGame/Animations/SlideUp.controller.meta new file mode 100644 index 0000000..aa71753 --- /dev/null +++ b/Assets/GadGame/Animations/SlideUp.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ede0e96bc0c77bd3867e0e86ff6fd40 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab b/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab new file mode 100644 index 0000000..adc5141 --- /dev/null +++ b/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab @@ -0,0 +1,158 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7688246038804780210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 506579238345646780} + - component: {fileID: 6593243307441872578} + - component: {fileID: 3724242089777939833} + - component: {fileID: 5089252045992414365} + m_Layer: 5 + m_Name: AnimatedTextPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &506579238345646780 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7688246038804780210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6593243307441872578 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7688246038804780210} + m_CullTransparentMesh: 1 +--- !u!114 &3724242089777939833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7688246038804780210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: W + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!95 &5089252045992414365 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7688246038804780210} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 8ede0e96bc0c77bd3867e0e86ff6fd40, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 diff --git a/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab.meta b/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab.meta new file mode 100644 index 0000000..de82218 --- /dev/null +++ b/Assets/GadGame/Prefab/AnimatedTextPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fe41701ffaac8a5a699e58aa5b939cce +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GadGame/SO/SceneFlowConfig/Scene Flow Config.asset b/Assets/GadGame/SO/SceneFlowConfig/Scene Flow Config.asset index 6143d40..93e3aec 100644 --- a/Assets/GadGame/SO/SceneFlowConfig/Scene Flow Config.asset +++ b/Assets/GadGame/SO/SceneFlowConfig/Scene Flow Config.asset @@ -40,3 +40,7 @@ MonoBehaviour: _sceneAsset: {fileID: 102900000, guid: 46cab2f289b2fed4bb929899e3c5cf4b, type: 3} _isDirty: 0 _scenePath: Assets/GadGame/Scenes/CTA-female.unity + CTASceneBoth: + _sceneAsset: {fileID: 102900000, guid: 5881f8613541949ffbbc6a2d193f3704, type: 3} + _isDirty: 0 + _scenePath: Assets/GadGame/Scenes/CTA-both.unity diff --git a/Assets/GadGame/Scenes/CTA-both.unity b/Assets/GadGame/Scenes/CTA-both.unity new file mode 100644 index 0000000..2cb8e52 --- /dev/null +++ b/Assets/GadGame/Scenes/CTA-both.unity @@ -0,0 +1,921 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &8989347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8989348} + - component: {fileID: 8989349} + m_Layer: 5 + m_Name: Video Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8989348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989347} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!328 &8989349 +VideoPlayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989347} + m_Enabled: 1 + m_VideoClip: {fileID: 32900000, guid: 3b4884bd1c52a67d38dad5cc3bc6cb27, type: 3} + m_TargetCameraAlpha: 1 + m_TargetCamera3DLayout: 0 + m_TargetCamera: {fileID: 0} + m_TargetTexture: {fileID: 0} + m_TimeReference: 0 + m_TargetMaterialRenderer: {fileID: 0} + m_TargetMaterialProperty: + m_RenderMode: 2 + m_AspectRatio: 2 + m_DataSource: 0 + m_TimeUpdateMode: 2 + m_PlaybackSpeed: 1 + m_AudioOutputMode: 2 + m_TargetAudioSources: + - {fileID: 0} + m_DirectAudioVolumes: + - 1 + m_Url: + m_EnabledAudioTracks: 01 + m_DirectAudioMutes: 00 + m_ControlledAudioTrackCount: 1 + m_PlayOnAwake: 1 + m_SkipOnDrop: 1 + m_Looping: 0 + m_WaitForFirstFrame: 1 + m_FrameReadyEventEnabled: 0 + m_VideoShaders: [] +--- !u!1 &44823601 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 44823602} + - component: {fileID: 44823604} + - component: {fileID: 44823603} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &44823602 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44823601} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.2, y: 2.2, z: 2.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 580} + m_SizeDelta: {x: 280, y: 309} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &44823603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44823601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 50c4c1e7e0af9454595a0f8be012bcd9, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &44823604 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44823601} + m_CullTransparentMesh: 1 +--- !u!1 &153067423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 153067424} + - component: {fileID: 153067426} + - component: {fileID: 153067425} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &153067424 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153067423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1080, y: 1920} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &153067425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153067423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 12705a8475671b57a9049f8fcc951c70, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &153067426 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153067423} + m_CullTransparentMesh: 1 +--- !u!1 &535544408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 535544411} + - component: {fileID: 535544410} + - component: {fileID: 535544409} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &535544409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535544408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &535544410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535544408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &535544411 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 535544408} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &583976853 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 583976854} + - component: {fileID: 583976855} + m_Layer: 5 + m_Name: Video Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &583976854 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583976853} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!328 &583976855 +VideoPlayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 583976853} + m_Enabled: 1 + m_VideoClip: {fileID: 32900000, guid: 3b4884bd1c52a67d38dad5cc3bc6cb27, type: 3} + m_TargetCameraAlpha: 1 + m_TargetCamera3DLayout: 0 + m_TargetCamera: {fileID: 1302683601} + m_TargetTexture: {fileID: 0} + m_TimeReference: 0 + m_TargetMaterialRenderer: {fileID: 0} + m_TargetMaterialProperty: + m_RenderMode: 1 + m_AspectRatio: 2 + m_DataSource: 0 + m_TimeUpdateMode: 2 + m_PlaybackSpeed: 1 + m_AudioOutputMode: 2 + m_TargetAudioSources: + - {fileID: 0} + m_DirectAudioVolumes: + - 1 + m_Url: + m_EnabledAudioTracks: 01 + m_DirectAudioMutes: 00 + m_ControlledAudioTrackCount: 1 + m_PlayOnAwake: 1 + m_SkipOnDrop: 1 + m_Looping: 1 + m_WaitForFirstFrame: 1 + m_FrameReadyEventEnabled: 0 + m_VideoShaders: [] +--- !u!1 &1265150231 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1265150232} + - component: {fileID: 1265150234} + - component: {fileID: 1265150233} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1265150232 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265150231} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1265150233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265150231} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: FeMale + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1265150234 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265150231} + m_CullTransparentMesh: 1 +--- !u!1 &1302683599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1302683602} + - component: {fileID: 1302683601} + - component: {fileID: 1302683600} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1302683600 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1302683599} + m_Enabled: 1 +--- !u!20 &1302683601 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1302683599} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1302683602 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1302683599} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1388120848 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1388120850} + - component: {fileID: 1388120849} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1388120849 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388120848} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1388120850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388120848} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1939570963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1939570967} + - component: {fileID: 1939570966} + - component: {fileID: 1939570965} + - component: {fileID: 1939570964} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1939570964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1939570963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 55 +--- !u!114 &1939570965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1939570963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1939570966 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1939570963} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 1302683601} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1939570967 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1939570963} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8989348} + - {fileID: 583976854} + - {fileID: 153067424} + - {fileID: 44823602} + - {fileID: 1265150232} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1302683602} + - {fileID: 1388120850} + - {fileID: 1939570967} + - {fileID: 535544411} diff --git a/Assets/GadGame/Scenes/CTA-both.unity.meta b/Assets/GadGame/Scenes/CTA-both.unity.meta new file mode 100644 index 0000000..8b4cbc2 --- /dev/null +++ b/Assets/GadGame/Scenes/CTA-both.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5881f8613541949ffbbc6a2d193f3704 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GadGame/Scenes/Game.unity b/Assets/GadGame/Scenes/Game.unity index b3790d3..716086d 100644 --- a/Assets/GadGame/Scenes/Game.unity +++ b/Assets/GadGame/Scenes/Game.unity @@ -123,6 +123,215 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &16274919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 16274920} + - component: {fileID: 16274921} + m_Layer: 0 + m_Name: Circle (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &16274920 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16274919} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &16274921 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16274919} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1001 &22570934 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 165 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: f + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (9) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &41715674 GameObject: m_ObjectHideFlags: 0 @@ -212,6 +421,136 @@ Transform: - {fileID: 853534936} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &62274825 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: -93 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: t + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (3) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} +--- !u!224 &86930993 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 731650292} + m_PrefabAsset: {fileID: 0} --- !u!1 &163859484 GameObject: m_ObjectHideFlags: 0 @@ -381,6 +720,131 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 169808668} m_CullTransparentMesh: 1 +--- !u!1001 &198375370 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 109 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: G + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (7) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &201703997 GameObject: m_ObjectHideFlags: 0 @@ -416,7 +880,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -10} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &201703999 @@ -491,6 +955,174 @@ Transform: - {fileID: 1822366210} m_Father: {fileID: 41715676} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &236078963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 236078964} + - component: {fileID: 236078965} + m_Layer: 0 + m_Name: Circle (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &236078964 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236078963} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &236078965 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236078963} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &252197707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 252197708} + - component: {fileID: 252197709} + m_Layer: 0 + m_Name: Circle (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &252197708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252197707} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &252197709 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252197707} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &272528180 GameObject: m_ObjectHideFlags: 0 @@ -575,6 +1207,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &284046319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 284046320} + - component: {fileID: 284046321} + m_Layer: 0 + m_Name: Circle (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &284046320 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284046319} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &284046321 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284046319} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &332379179 GameObject: m_ObjectHideFlags: 0 @@ -651,6 +1367,131 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 332379179} m_CullTransparentMesh: 1 +--- !u!1001 &384937205 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 45 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: r + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (6) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &408830255 GameObject: m_ObjectHideFlags: 0 @@ -682,6 +1523,261 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &414953358 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: -114 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: i + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (2) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} +--- !u!224 &473830371 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 198375370} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &524739980 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: F + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (4) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &535544408 GameObject: m_ObjectHideFlags: 0 @@ -921,6 +2017,175 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!224 &600281452 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 22570934} + m_PrefabAsset: {fileID: 0} +--- !u!1 &636098794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636098795} + - component: {fileID: 636098798} + - component: {fileID: 636098797} + - component: {fileID: 636098796} + m_Layer: 5 + m_Name: loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &636098795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1691484230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.0059528, y: -337} + m_SizeDelta: {x: 965.41, y: 149} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &636098796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 0} + databaseAppearances: {fileID: 0} + databaseActions: {fileID: 0} + defaultAppearancesTags: + - size + defaultDisappearancesTags: + - fade + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!114 &636098797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Please wait while the system selects your reward + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 2e498d1c8094910479dc3e1b768306a4, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278232063 + m_fontColor: {r: 1, g: 0.6392157, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &636098798 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_CullTransparentMesh: 1 --- !u!1 &655028317 GameObject: m_ObjectHideFlags: 0 @@ -1257,6 +2522,131 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &731650292 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 144 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: i + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (8) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &755912836 GameObject: m_ObjectHideFlags: 0 @@ -1500,6 +2890,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &987322746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 987322747} + - component: {fileID: 987322748} + m_Layer: 0 + m_Name: Circle (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &987322747 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987322746} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &987322748 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987322746} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &998003724 GameObject: m_ObjectHideFlags: 0 @@ -1606,6 +3080,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!224 &1059323917 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 524739980} + m_PrefabAsset: {fileID: 0} --- !u!1 &1095139507 GameObject: m_ObjectHideFlags: 0 @@ -1640,6 +3119,67 @@ Transform: - {fileID: 1863719265} m_Father: {fileID: 41715676} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1137171260 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1137171261} + - component: {fileID: 1137171262} + m_Layer: 5 + m_Name: loading_text_container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1137171261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1137171260} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1333346468} + - {fileID: 1346510536} + - {fileID: 1923756698} + - {fileID: 1399432458} + - {fileID: 1059323917} + - {fileID: 1238196468} + - {fileID: 1444872083} + - {fileID: 473830371} + - {fileID: 86930993} + - {fileID: 600281452} + - {fileID: 1715836403} + m_Father: {fileID: 1691484230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 15, y: -505} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1137171262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1137171260} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b02bc660ebcd9ac4841e07e55540bdb, type: 3} + m_Name: + m_EditorClassIdentifier: + _waitTime: 0.15 + _waitEndTime: 0.5 --- !u!1 &1182715074 GameObject: m_ObjectHideFlags: 0 @@ -1715,6 +3255,174 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1182715074} m_CullTransparentMesh: 1 +--- !u!1 &1187927588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187927589} + - component: {fileID: 1187927590} + m_Layer: 0 + m_Name: Circle (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1187927589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187927588} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1187927590 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187927588} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1229982701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229982702} + - component: {fileID: 1229982703} + m_Layer: 0 + m_Name: Circle (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1229982702 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229982701} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1229982703 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229982701} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1230716509 GameObject: m_ObjectHideFlags: 0 @@ -1850,6 +3558,11 @@ RectTransform: m_AnchoredPosition: {x: -34.200012, y: -100} m_SizeDelta: {x: 200, y: 50} m_Pivot: {x: 1, y: 1} +--- !u!224 &1238196468 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 1414929482} + m_PrefabAsset: {fileID: 0} --- !u!1 &1254852289 GameObject: m_ObjectHideFlags: 0 @@ -1964,6 +3677,90 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &1271328619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1271328620} + - component: {fileID: 1271328621} + m_Layer: 0 + m_Name: Circle (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1271328620 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271328619} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1271328621 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271328619} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1278601754 GameObject: m_ObjectHideFlags: 0 @@ -2340,8 +4137,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -63} - m_SizeDelta: {x: 330.89, y: 50} + m_AnchoredPosition: {x: 96.66998, y: -63} + m_SizeDelta: {x: 137.56, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1324683899 MonoBehaviour: @@ -2397,7 +4194,7 @@ MonoBehaviour: m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 1 - m_HorizontalAlignment: 2 + m_HorizontalAlignment: 1 m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 @@ -2426,7 +4223,7 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} + m_margin: {x: 13.93866, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 m_hasFontAssetChanged: 0 @@ -2440,6 +4237,16 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1324683897} m_CullTransparentMesh: 1 +--- !u!224 &1333346468 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 1420407835} + m_PrefabAsset: {fileID: 0} +--- !u!224 &1346510536 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 2087404703} + m_PrefabAsset: {fileID: 0} --- !u!1 &1369968914 GameObject: m_ObjectHideFlags: 0 @@ -2524,6 +4331,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1388027224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1388027225} + - component: {fileID: 1388027226} + m_Layer: 0 + m_Name: Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1388027225 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388027224} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1388027226 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388027224} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1388120848 GameObject: m_ObjectHideFlags: 0 @@ -2618,6 +4509,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!224 &1399432458 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 62274825} + m_PrefabAsset: {fileID: 0} --- !u!1 &1414765585 GameObject: m_ObjectHideFlags: 0 @@ -2693,6 +4589,252 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1414765585} m_CullTransparentMesh: 1 +--- !u!1001 &1414929482 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: o + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (5) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} +--- !u!1001 &1420407835 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: -201 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &1437315845 GameObject: m_ObjectHideFlags: 0 @@ -2727,6 +4869,11 @@ Transform: - {fileID: 2133541570} m_Father: {fileID: 41715676} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!224 &1444872083 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 384937205} + m_PrefabAsset: {fileID: 0} --- !u!1 &1461246852 GameObject: m_ObjectHideFlags: 0 @@ -2761,7 +4908,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -300, y: 0} + m_AnchoredPosition: {x: -341, y: 0} m_SizeDelta: {x: 120, y: 100} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1461246854 @@ -3020,6 +5167,174 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1619835393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619835394} + - component: {fileID: 1619835395} + m_Layer: 0 + m_Name: Circle (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1619835394 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619835393} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1619835395 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619835393} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1634234204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1634234205} + - component: {fileID: 1634234206} + m_Layer: 0 + m_Name: Circle (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1634234205 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634234204} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1634234206 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634234204} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1639241604 GameObject: m_ObjectHideFlags: 0 @@ -3077,7 +5392,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: 5 + m_text: 10 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -3372,6 +5687,90 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1682928234} m_CullTransparentMesh: 1 +--- !u!1 &1689361858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1689361859} + - component: {fileID: 1689361860} + m_Layer: 0 + m_Name: Circle (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1689361859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689361858} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1689361860 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689361858} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1691484229 GameObject: m_ObjectHideFlags: 0 @@ -3408,6 +5807,8 @@ RectTransform: - {fileID: 1810672864} - {fileID: 332379180} - {fileID: 1827213708} + - {fileID: 1137171261} + - {fileID: 636098795} m_Father: {fileID: 1939570967} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -3465,6 +5866,220 @@ CanvasGroup: m_Interactable: 0 m_BlocksRaycasts: 0 m_IgnoreParentGroups: 0 +--- !u!224 &1715836403 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 1717529633} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1716313073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1716313074} + - component: {fileID: 1716313075} + m_Layer: 0 + m_Name: Circle (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1716313074 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716313073} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1716313075 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716313073} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1001 &1717529633 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: 191 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: t + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (10) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &1763945064 GameObject: m_ObjectHideFlags: 0 @@ -3680,6 +6295,54 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1805668786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1805668787} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1805668787 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1805668786} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1388027225} + - {fileID: 1689361859} + - {fileID: 1634234205} + - {fileID: 16274920} + - {fileID: 2084131005} + - {fileID: 1619835394} + - {fileID: 284046320} + - {fileID: 1271328620} + - {fileID: 236078964} + - {fileID: 987322747} + - {fileID: 1950742235} + - {fileID: 1960192227} + - {fileID: 1187927589} + - {fileID: 252197708} + - {fileID: 1716313074} + - {fileID: 1955124308} + - {fileID: 1229982702} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1810672863 GameObject: m_ObjectHideFlags: 0 @@ -3705,7 +6368,7 @@ RectTransform: m_GameObject: {fileID: 1810672863} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_LocalScale: {x: 1.2, y: 1.2, z: 1.2} m_ConstrainProportionsScale: 1 m_Children: - {fileID: 201703998} @@ -3713,8 +6376,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -627} - m_SizeDelta: {x: 100, y: 100} + m_AnchoredPosition: {x: 0, y: -719} + m_SizeDelta: {x: 80, y: 80} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1822366209 GameObject: @@ -3827,14 +6490,14 @@ RectTransform: m_GameObject: {fileID: 1827213707} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.9, y: 0.9, z: 0.9} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 1691484230} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 135} m_SizeDelta: {x: 1000, y: 1000} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1827213709 @@ -4093,6 +6756,11 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1901652402} m_CullTransparentMesh: 1 +--- !u!224 &1923756698 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + m_PrefabInstance: {fileID: 414953358} + m_PrefabAsset: {fileID: 0} --- !u!1 &1939570963 GameObject: m_ObjectHideFlags: 0 @@ -4201,6 +6869,258 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1950742234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1950742235} + - component: {fileID: 1950742236} + m_Layer: 0 + m_Name: Circle (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1950742235 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950742234} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1950742236 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950742234} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1955124307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1955124308} + - component: {fileID: 1955124309} + m_Layer: 0 + m_Name: Circle (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1955124308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955124307} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1955124309 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955124307} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1960192226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1960192227} + - component: {fileID: 1960192228} + m_Layer: 0 + m_Name: Circle (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1960192227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960192226} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1960192228 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960192226} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2012096804 GameObject: m_ObjectHideFlags: 0 @@ -4235,7 +7155,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: -337} + m_AnchoredPosition: {x: 0, y: -278} m_SizeDelta: {x: 1080, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2012096806 @@ -4267,8 +7187,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4278232063 - m_fontColor: {r: 1, g: 0.6388892, b: 0, a: 1} + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -4506,6 +7426,215 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2084131004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2084131005} + - component: {fileID: 2084131006} + m_Layer: 0 + m_Name: Circle (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2084131005 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084131004} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2084131006 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084131004} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1001 &2087404703 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1137171261} + m_Modifications: + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.x + value: -147 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_text + value: a + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_TextStyleHashCode + value: 2426 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3724242089777939833, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_Name + value: AnimatedTextPrefab (1) + objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} --- !u!1 &2100564735 GameObject: m_ObjectHideFlags: 0 @@ -4724,7 +7853,7 @@ MonoBehaviour: - GadGame.State.GameState.ResumeGameState - GadGame.State.GameState.PlayingGameState - GadGame.State.GameState.EndGameState - GameTime: 30 + GameTime: 20 _basket: {fileID: 1254852293} _lerp: 10 _spawnTime: 0.2 @@ -4774,6 +7903,24 @@ MonoBehaviour: _defaultCapacity: 10 _max: 100 _collectionCheck: 0 + Objects: + - {fileID: 1388027225} + - {fileID: 1689361859} + - {fileID: 1634234205} + - {fileID: 16274920} + - {fileID: 2084131005} + - {fileID: 1619835394} + - {fileID: 284046320} + - {fileID: 1271328620} + - {fileID: 236078964} + - {fileID: 987322747} + - {fileID: 1950742235} + - {fileID: 1960192227} + - {fileID: 1187927589} + - {fileID: 252197708} + - {fileID: 1716313074} + - {fileID: 1955124308} + - {fileID: 1229982702} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -4792,3 +7939,4 @@ SceneRoots: - {fileID: 655028318} - {fileID: 1281411708} - {fileID: 1939570967} + - {fileID: 1805668787} diff --git a/Assets/GadGame/Scenes/PassBy.unity b/Assets/GadGame/Scenes/PassBy.unity index 10f2198..fbf248b 100644 --- a/Assets/GadGame/Scenes/PassBy.unity +++ b/Assets/GadGame/Scenes/PassBy.unity @@ -496,6 +496,7 @@ RectTransform: - {fileID: 1509506830} - {fileID: 1296119107} - {fileID: 781534353} + - {fileID: 778936296} m_Father: {fileID: 883611476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -877,6 +878,170 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 752378338} m_CullTransparentMesh: 1 +--- !u!1 &778936295 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 778936296} + - component: {fileID: 778936298} + - component: {fileID: 778936297} + - component: {fileID: 778936299} + m_Layer: 5 + m_Name: Image_idle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &778936296 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 324847414} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 706.0657, y: 166.71} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &778936297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: IDLE WINDOW + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &778936298 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_CullTransparentMesh: 1 +--- !u!114 &778936299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: IDLE WINDOW + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: d1ab346c8b166fe1babb05950e874fb1, type: 2} + databaseAppearances: {fileID: 11400000, guid: 6f440ba43b95f6c7e90fa305a0bbda32, type: 2} + databaseActions: {fileID: 11400000, guid: 0f78b267c3825f804a4727a8b68c329d, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: + - fade + defaultBehaviorsTags: [] + defaultTagsMode: 0 --- !u!1 &781534352 GameObject: m_ObjectHideFlags: 0 @@ -1025,7 +1190,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0.0000076293945, y: -337} + m_AnchoredPosition: {x: 0, y: -337} m_SizeDelta: {x: 914.6453, y: 897.0692} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &883611477 @@ -1095,6 +1260,7 @@ MonoBehaviour: _transform: {fileID: 324847414} CircleImg: {fileID: 588222147} txtProgress: {fileID: 278260376} + videoPlayer: {fileID: 2124753956} --- !u!1 &1118910917 GameObject: m_ObjectHideFlags: 0 @@ -1728,10 +1894,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 324847414} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 914, y: 898} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1509506831 MonoBehaviour: @@ -2470,8 +2636,8 @@ Canvas: m_GameObject: {fileID: 1939570963} m_Enabled: 1 serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} + m_RenderMode: 1 + m_Camera: {fileID: 1302683601} m_PlaneDistance: 100 m_PixelPerfect: 0 m_ReceivesEvents: 1 @@ -2497,6 +2663,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 731571812} + - {fileID: 2124753955} - {fileID: 1490140569} - {fileID: 1796482201} - {fileID: 883611476} @@ -2717,6 +2884,78 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2003416019} m_CullTransparentMesh: 1 +--- !u!1 &2124753954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2124753955} + - component: {fileID: 2124753956} + m_Layer: 5 + m_Name: Video Player_Idle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2124753955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124753954} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2160, y: 3840} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!328 &2124753956 +VideoPlayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124753954} + m_Enabled: 1 + m_VideoClip: {fileID: 32900000, guid: b431e4dee076c8b698cee9a4d18c6dbd, type: 3} + m_TargetCameraAlpha: 1 + m_TargetCamera3DLayout: 0 + m_TargetCamera: {fileID: 1302683601} + m_TargetTexture: {fileID: 0} + m_TimeReference: 0 + m_TargetMaterialRenderer: {fileID: 0} + m_TargetMaterialProperty: + m_RenderMode: 1 + m_AspectRatio: 2 + m_DataSource: 0 + m_TimeUpdateMode: 2 + m_PlaybackSpeed: 1 + m_AudioOutputMode: 2 + m_TargetAudioSources: + - {fileID: 0} + m_DirectAudioVolumes: + - 1 + m_Url: + m_EnabledAudioTracks: 01 + m_DirectAudioMutes: 00 + m_ControlledAudioTrackCount: 1 + m_PlayOnAwake: 1 + m_SkipOnDrop: 1 + m_Looping: 1 + m_WaitForFirstFrame: 1 + m_FrameReadyEventEnabled: 0 + m_VideoShaders: [] --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Assets/GadGame/Scripts/MainFlow.cs b/Assets/GadGame/Scripts/MainFlow.cs index 7ad3078..7a1b6d8 100644 --- a/Assets/GadGame/Scripts/MainFlow.cs +++ b/Assets/GadGame/Scripts/MainFlow.cs @@ -19,8 +19,9 @@ namespace GadGame DontDestroyOnLoad(gameObject); } - private void Start() + private async void Start() { + await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(SceneFlowConfig.PassByScene.ScenePath); SetState(); } diff --git a/Assets/GadGame/Scripts/Manager/GameManager.cs b/Assets/GadGame/Scripts/Manager/GameManager.cs index 9053357..26d3643 100644 --- a/Assets/GadGame/Scripts/Manager/GameManager.cs +++ b/Assets/GadGame/Scripts/Manager/GameManager.cs @@ -5,9 +5,10 @@ using UnityEngine.UI; namespace GadGame.Manager { - + public class GameManager : Singleton.Singleton { + public bool Playing {get; private set;} private int _score; public int Score => _score; public event Action OnEnd; @@ -22,6 +23,15 @@ namespace GadGame.Manager OnScoreUpdate?.Invoke(_score); } + public void StartPlay() + { + Playing = true; + } + + public void EndPlay() + { + Playing = false; + } public void EndGame() { OnEnd?.Invoke(); diff --git a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs index 5ef2caf..de05733 100644 --- a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs +++ b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs @@ -11,6 +11,7 @@ using TMPro; using UnityEngine; using UnityEngine.UI; using Random = UnityEngine.Random; +using Newtonsoft.Json; namespace GadGame.MiniGame { @@ -44,6 +45,9 @@ namespace GadGame.MiniGame [Header("Pool")] [SerializeField] private Pool[] _itemPools; [SerializeField] private Pool[] _bombPools; + + private Vector2[] receivedData; + public Transform[] Objects; private GameManager _gameManager; private Camera _camera; @@ -96,28 +100,50 @@ namespace GadGame.MiniGame public void PlayerControl() { //640x480; - var inputData = UdpSocket.Instance.DataReceived.PosPoint; - var inputNormalize = new Vector2((inputData.x - 213.33f)/ 213.33f, inputData.y / 480); + // string inputData = UdpSocket.Instance.DataReceived.PosPoints; + // var inputNormalize = new Vector2((inputData.x - 213.33f)/ 213.33f, inputData.y / 480); // var inputNormalize = new Vector2(inputData.x/ 200, inputData.y / 480); - var input = new Vector2 + + receivedData = UdpSocket.Instance.DataReceived.PosPoints; + // Debug.Log(receivedData); + + for (int i = 0; i < Objects.Length; ++i) { - x = Mathf.Lerp(0, _canvas.pixelRect.width, inputNormalize.x), - y = -Mathf.Lerp(0, _canvas.pixelRect.height, inputNormalize.y) - }; - if (input != Vector2.zero) - { - var mousePos = input; - var pos = _camera.ScreenToWorldPoint(mousePos); - var currentPosition = _basket.Position; - pos.x *= -1; - pos.y = currentPosition.y; - pos.z = 0; - currentPosition= Vector3.Lerp(currentPosition, pos, _lerp * Time.deltaTime); - currentPosition.x = Mathf.Clamp(currentPosition.x, -2.25f, 2.25f); - var dirMove = (_preFramePosition - currentPosition).normalized; - _basket.transform.DORotate(new Vector3(0, 0, 10 * dirMove.x), 0.2f); - _basket.Position = currentPosition; + var inputNormalize = new Vector2((receivedData[i].x - 213.33f)/ 213.33f, receivedData[i].y / 480); + // Debug.Log(inputNormalize); + if (i == 0) + { + var input = new Vector2 + { + x = Mathf.Lerp(0, _canvas.pixelRect.width, inputNormalize.x), + y = -Mathf.Lerp(0, _canvas.pixelRect.height, inputNormalize.y) + }; + if (input != Vector2.zero) + { + var mousePos = input; + var pos = _camera.ScreenToWorldPoint(mousePos); + var currentPosition = _basket.Position; + pos.x *= -1; + pos.y = currentPosition.y; + pos.z = 0; + currentPosition= Vector3.Lerp(currentPosition, pos, _lerp * Time.deltaTime); + currentPosition.x = Mathf.Clamp(currentPosition.x, -2.25f, 2.25f); + var dirMove = (_preFramePosition - currentPosition).normalized; + _basket.transform.DORotate(new Vector3(0, 0, 10 * dirMove.x), 0.2f); + _basket.Position = currentPosition; + } + } + + // var pos_pose = new Vector2(); + // var x = Mathf.Clamp01(receivedData[i].x / 640); + // var y = Mathf.Clamp01(receivedData[i].y / 480); + + // pos_pose.x = x; + // pos_pose.y = y; + + // Objects[i].localPosition = pos_pose * -1; } + } public async void ShowTutorial() @@ -149,7 +175,7 @@ namespace GadGame.MiniGame public void CountDownEndGame(float time){ var countDownTime = 10 - time; - Debug.Log("EndGame CountDown " + countDownTime.ToString()); + // Debug.Log("EndGame CountDown " + countDownTime.ToString()); var fill = countDownTime / 10; CircleImgEndGame.fillAmount = fill; txtProgressEndGame.text = Mathf.Ceil(countDownTime).ToString(); diff --git a/Assets/GadGame/Scripts/Network/ReceiverData.cs b/Assets/GadGame/Scripts/Network/ReceiverData.cs index 52fb854..3525776 100644 --- a/Assets/GadGame/Scripts/Network/ReceiverData.cs +++ b/Assets/GadGame/Scripts/Network/ReceiverData.cs @@ -18,6 +18,6 @@ namespace GadGame.Network public float Gender; public int AgeMin; public int AgeMax; - public Vector2 PosPoint; + public Vector2[] PosPoints; } } \ No newline at end of file diff --git a/Assets/GadGame/Scripts/PassByAnimation.cs b/Assets/GadGame/Scripts/PassByAnimation.cs index 50a2cf6..84d480f 100644 --- a/Assets/GadGame/Scripts/PassByAnimation.cs +++ b/Assets/GadGame/Scripts/PassByAnimation.cs @@ -1,11 +1,12 @@ +using System.Collections; +using Cysharp.Threading.Tasks; using DG.Tweening; -using GadGame.Network; using GadGame.Singleton; -using Microsoft.Unity.VisualStudio.Editor; using Sirenix.OdinInspector; using TMPro; using UnityEngine; using UnityEngine.UI; +using UnityEngine.Video; namespace GadGame.State.MainFlowState { @@ -13,16 +14,37 @@ namespace GadGame.State.MainFlowState { public Animator passBy; [SerializeField] private RectTransform _transform; - [SerializeField] private UnityEngine.UI.Image CircleImg; + // [SerializeField] private RectTransform _videoIdleTransform; + [SerializeField] private Image CircleImg; [SerializeField] private TextMeshProUGUI txtProgress; - // [SerializeField] [Range(0,1)] float progress = 1f; - + [SerializeField] private VideoPlayer videoPlayer; [Button] public void Play(bool engage) { - _transform.DOAnchorPosX(engage ? -1000 : 0, 2); + // videoPlayer.gameObject.SetActive(!passBy); + _transform.DOAnchorPosX(engage ? -1000 : 0, 1); } + public async void SetPlayVideo(bool value){ + if(value) { + while (videoPlayer.targetCameraAlpha < 1) + { + videoPlayer.targetCameraAlpha += Time.deltaTime * 3; + await UniTask.Yield(); + } + + videoPlayer.targetCameraAlpha = 1; + } else { + while (videoPlayer.targetCameraAlpha > 0) + { + videoPlayer.targetCameraAlpha -= Time.deltaTime * 3; + await UniTask.Yield(); + } + + videoPlayer.targetCameraAlpha = 0; + } + } + public void ReadyCountDown(float progress){ CircleImg.fillAmount = progress ; txtProgress.text = Mathf.Floor(progress * 3).ToString(); diff --git a/Assets/GadGame/Scripts/Popup.cs b/Assets/GadGame/Scripts/Popup.cs index 9f39cd4..045fc23 100644 --- a/Assets/GadGame/Scripts/Popup.cs +++ b/Assets/GadGame/Scripts/Popup.cs @@ -30,7 +30,7 @@ namespace GadGame _duration -= 100; if (_duration <= 0) { - Hide(); + Hide(true); } } _onRun?.Invoke(_duration); @@ -58,7 +58,7 @@ namespace GadGame PopupUpdate(); } - public async void Hide() + public async void Hide(bool runComplete = false) { _active = false; _duration = 0; @@ -67,7 +67,7 @@ namespace GadGame _canvasGroup.DOComplete(); await _content.DOScale(Vector3.zero, 0.3f).SetUpdate(true); await _canvasGroup.DOFade(0, 0.3f).SetUpdate(true); - _onComplete?.Invoke(); + if(runComplete) _onComplete?.Invoke(); _onComplete = null; _onRun = null; } diff --git a/Assets/GadGame/Scripts/SO/SceneFlowConfig.cs b/Assets/GadGame/Scripts/SO/SceneFlowConfig.cs index b54ec8f..d0a4d02 100644 --- a/Assets/GadGame/Scripts/SO/SceneFlowConfig.cs +++ b/Assets/GadGame/Scripts/SO/SceneFlowConfig.cs @@ -16,6 +16,7 @@ namespace GadGame.SO public SceneReference GameScene; public SceneReference CTASceneMale; public SceneReference CTASceneFemale; + public SceneReference CTASceneBoth; #if UNITY_EDITOR diff --git a/Assets/GadGame/Scripts/State/GameState/EndGameState.cs b/Assets/GadGame/Scripts/State/GameState/EndGameState.cs index 7c8320b..52b14f5 100644 --- a/Assets/GadGame/Scripts/State/GameState/EndGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/EndGameState.cs @@ -10,12 +10,9 @@ namespace GadGame.State.GameState { public override async void Enter() { - // Debug.Log("End Game"); Runner.SetActive(false); await UniTask.Delay(1000); Runner.ShowResult(); - // await UniTask.Delay(5000); - // GameManager.Instance.EndGame(); } public override void Update(float time) diff --git a/Assets/GadGame/Scripts/State/GameState/PauseGameState.cs b/Assets/GadGame/Scripts/State/GameState/PauseGameState.cs index a0445cd..b46b504 100644 --- a/Assets/GadGame/Scripts/State/GameState/PauseGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/PauseGameState.cs @@ -1,3 +1,4 @@ +using GadGame.Manager; using GadGame.MiniGame; using UnityEngine; diff --git a/Assets/GadGame/Scripts/State/GameState/PlayingGameState.cs b/Assets/GadGame/Scripts/State/GameState/PlayingGameState.cs index 8ece2b4..6801dfd 100644 --- a/Assets/GadGame/Scripts/State/GameState/PlayingGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/PlayingGameState.cs @@ -1,5 +1,6 @@ using UnityEngine; using GadGame.MiniGame; +using GadGame.Manager; namespace GadGame.State.GameState { @@ -9,6 +10,7 @@ namespace GadGame.State.GameState public override void Enter() { + GameManager.Instance.StartPlay(); Runner.SetActive(true); } @@ -28,7 +30,7 @@ namespace GadGame.State.GameState public override void Exit() { - + GameManager.Instance.EndPlay(); } } } \ No newline at end of file diff --git a/Assets/GadGame/Scripts/State/GameState/ResumeGameState.cs b/Assets/GadGame/Scripts/State/GameState/ResumeGameState.cs index 8129748..11d4a9b 100644 --- a/Assets/GadGame/Scripts/State/GameState/ResumeGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/ResumeGameState.cs @@ -1,3 +1,4 @@ +using GadGame.Manager; using GadGame.MiniGame; using UnityEngine; @@ -9,12 +10,11 @@ namespace GadGame.State.GameState { Debug.Log("Resume Game"); Time.timeScale = 1; - Runner.SetState(); } public override void Update(float time) { - + Runner.SetState(); } public override void Exit() diff --git a/Assets/GadGame/Scripts/State/GameState/TutorialGameState.cs b/Assets/GadGame/Scripts/State/GameState/TutorialGameState.cs index 5896355..74c1559 100644 --- a/Assets/GadGame/Scripts/State/GameState/TutorialGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/TutorialGameState.cs @@ -1,4 +1,5 @@ -using GadGame.MiniGame; +using GadGame.Manager; +using GadGame.MiniGame; namespace GadGame.State.GameState { @@ -18,6 +19,10 @@ namespace GadGame.State.GameState { Runner.PlayerControl(); } + + if(time >= 60) { + GameManager.Instance.EndGame(); + } } public override void Exit() diff --git a/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs b/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs index c8f352e..f39da3c 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs @@ -1,6 +1,5 @@ using GadGame.Manager; using GadGame.Network; -using UnityEngine; namespace GadGame.State.MainFlowState { @@ -8,31 +7,21 @@ namespace GadGame.State.MainFlowState { public override void Enter() { - if(UdpSocket.Instance.DataReceived.Gender <= 0.5f) { + if(UdpSocket.Instance.DataReceived.Gender <= 0.3f) { LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneMale.ScenePath); + } else if (UdpSocket.Instance.DataReceived.Gender >= 0.7f){ + LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneFemale.ScenePath); } else { LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneFemale.ScenePath); } } - public override void Update(float time) + public async override void Update(float time) { - - if (time >= 10) { - if(!UdpSocket.Instance.DataReceived.PassBy) - { - Runner.SetState(); - return; - } - - if(!UdpSocket.Instance.DataReceived.Engage) - { - Runner.SetState(); - return; - } - Runner.SetState(); + Runner.SetState(); + await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); } } diff --git a/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs b/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs index 150bba3..efd7fcd 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs @@ -1,5 +1,6 @@ using GadGame.Manager; using GadGame.Network; +using Unity.Mathematics; using UnityEngine; namespace GadGame.State.MainFlowState @@ -10,57 +11,36 @@ namespace GadGame.State.MainFlowState private bool _warned; private bool _showCountDown; - private PassByAnimation passByAnim; - public override void Enter() { - passByAnim = PassByAnimation.Instance; - passByAnim.Play(true); // LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.EndGageScene.ScenePath); + PassByAnimation.Instance.Play(true); _readyTimer = 5; } public override void Update(float time) { + if(!UdpSocket.Instance.DataReceived.PassBy) { + Runner.SetState(); + return; + } + + if(!UdpSocket.Instance.DataReceived.Engage) { + Runner.SetState(); + return; + } + + if (!UdpSocket.Instance.DataReceived.Ready) _readyTimer = 3; + PassByAnimation.Instance.ReadyCountDown(_readyTimer / 3); + _readyTimer -= Time.deltaTime; + if (_readyTimer <= 0) + { + _readyTimer = 0; + Runner.SetState(); + } if (time >= 2) { - switch (_warned) - { - case false when !UdpSocket.Instance.DataReceived.PassBy: - Runner.SetState(); - break; - case false when !UdpSocket.Instance.DataReceived.Engage: - _warned = true; - passByAnim.Play(false); - // PopupManager.Instance.Show("Come Back", 5).OnComplete(OnWaringComplete); - break; - case true when UdpSocket.Instance.DataReceived.Engage: - _warned = false; - passByAnim.Play(true); - // PopupManager.Instance.Hide(); - break; - } - - switch (_showCountDown) - { - case false when UdpSocket.Instance.DataReceived.Ready: - _showCountDown = true; - // Runner.Ready(true); - break; - case true when !UdpSocket.Instance.DataReceived.Ready: - _showCountDown = false; - // Runner.Ready(false); - break; - } - if (!UdpSocket.Instance.DataReceived.Ready) _readyTimer = 3; - passByAnim.ReadyCountDown(_readyTimer / 3); - _readyTimer -= Time.deltaTime; - if (_readyTimer <= 0) - { - _readyTimer = 0; - Runner.SetState(); - } // Runner.ReadyCountDown(_readyTimer); } diff --git a/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs b/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs index 60028a7..cd5bc94 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs @@ -1,14 +1,16 @@ +using System.Diagnostics; using GadGame.Manager; using GadGame.Network; +using UnityEngine.SceneManagement; namespace GadGame.State.MainFlowState { public class IdleState : State { - public override void Enter() { - LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.IdleScene.ScenePath); + PassByAnimation.Instance.Play(false); + PassByAnimation.Instance.SetPlayVideo(true); } public override void Update(float time) @@ -35,7 +37,7 @@ namespace GadGame.State.MainFlowState public override void Exit() { - + PassByAnimation.Instance.SetPlayVideo(false); } } } \ No newline at end of file diff --git a/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs b/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs index 6c55fe4..51b70fd 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs @@ -7,35 +7,27 @@ namespace GadGame.State.MainFlowState { public class PassByState : State { - private PassByAnimation passByAnim; public async override void Enter() { - await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); - passByAnim = PassByAnimation.Instance; - passByAnim.Play(false); + // await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); + PassByAnimation.Instance.Play(false); } public override void Update(float time) { - if (time < 2f) return; + if(time < 2) return; if (!UdpSocket.Instance.DataReceived.PassBy) { Runner.SetState(); return; } - + if (UdpSocket.Instance.DataReceived.Engage) { Runner.SetState(); return; } - - // if (UdpSocket.Instance.DataReceived.OnVision) - // { - // Runner.SetState(); - // return; - // } } public override void Exit() diff --git a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs index 897f0d6..840af7b 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs @@ -1,3 +1,4 @@ +using Cysharp.Threading.Tasks; using GadGame.Manager; using GadGame.Network; using UnityEngine; @@ -21,26 +22,29 @@ namespace GadGame.State.MainFlowState public override void Update(float time) { UdpSocket.Instance.SendDataToPython("1"); - // Debug.Log("Playing Game"); - switch (_warned) - { - case false when !UdpSocket.Instance.DataReceived.Engage: + if(!GameManager.Instance.Playing) return; + + if(!_warned && !UdpSocket.Instance.DataReceived.Engage) { + _leaveTimer += Time.deltaTime; + if ( _leaveTimer >= 5) { - _leaveTimer += Time.deltaTime; - if ( _leaveTimer >= 5) - { - _warned = true; - _leaveTimer = 0; - _gameManager.Pause(); - PopupManager.Instance.Show("Where Are You?", 10).OnComplete(OnWaringComplete); - } - return; + _warned = true; + _leaveTimer = 0; + _gameManager.Pause(); + PopupManager.Instance.Show("Where Are You?", 10).OnComplete(OnWaringComplete); + CheckPlayBack(); } - case true when UdpSocket.Instance.DataReceived.Engage: + } + } + + public async void CheckPlayBack () { + while(_warned) { + if(UdpSocket.Instance.DataReceived.Engage) { _warned = false; _gameManager.Resume(); PopupManager.Instance.Hide(); - return; + } + await UniTask.Yield(); } } @@ -55,24 +59,22 @@ namespace GadGame.State.MainFlowState Runner.SetState(); } - private void OnWaringComplete() + private async void OnWaringComplete() { _gameManager.Resume(); - if(!UdpSocket.Instance.DataReceived.PassBy) - { - Runner.SetState(); - return; - } - // if(!UdpSocket.Instance.DataReceived.OnVision) + await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); + Runner.SetState(); + // if(!UdpSocket.Instance.DataReceived.PassBy) // { // Runner.SetState(); // return; // } - if(!UdpSocket.Instance.DataReceived.Engage) - { - Runner.SetState(); - return; - } + + // if(!UdpSocket.Instance.DataReceived.Engage) + // { + // Runner.SetState(); + // return; + // } // Runner.SetState(); } } diff --git a/Assets/GadGame/Scripts/State/StateRunner.cs b/Assets/GadGame/Scripts/State/StateRunner.cs index 81da28b..a15c4c5 100644 --- a/Assets/GadGame/Scripts/State/StateRunner.cs +++ b/Assets/GadGame/Scripts/State/StateRunner.cs @@ -17,7 +17,7 @@ namespace GadGame.State #endif [SerializeField] private List _availableStates; - private List> _states; + private List> _states = new(); private float _timer; #if UNITY_EDITOR @@ -36,8 +36,6 @@ namespace GadGame.State protected virtual void Awake() { - _states = new List>(); - foreach (var stateName in _availableStates) { var stateType = Assembly.GetExecutingAssembly().GetType(stateName); @@ -66,8 +64,8 @@ namespace GadGame.State var newState = _states.FirstOrDefault(s => s is TSt); if(newState == null) return; + newState.Enter(); ActiveState = newState; - ActiveState.Enter(); _timer = 0; } } diff --git a/Assets/GadGame/Scripts/TextEffect.cs b/Assets/GadGame/Scripts/TextEffect.cs new file mode 100644 index 0000000..a3f2b6b --- /dev/null +++ b/Assets/GadGame/Scripts/TextEffect.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using TMPro; +using Cysharp.Threading.Tasks; + +public class TextEffect : MonoBehaviour +{ + [SerializeField] private float _waitTime; + [SerializeField] private float _waitEndTime; + List _animators; + + void Start() + { + _animators = new List(GetComponentsInChildren()); + + StartCoroutine(DoAnimation()); + + } + + IEnumerator DoAnimation(){ + while(true){ + foreach(var animator in _animators){ + animator.SetTrigger("DoAnimation"); + yield return new WaitForSeconds(_waitTime); + } + + yield return new WaitForSeconds(_waitEndTime); + } + } +} diff --git a/Assets/GadGame/Scripts/TextEffect.cs.meta b/Assets/GadGame/Scripts/TextEffect.cs.meta new file mode 100644 index 0000000..f8f7072 --- /dev/null +++ b/Assets/GadGame/Scripts/TextEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b02bc660ebcd9ac4841e07e55540bdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GadGame/VIdeos/CTA.webm b/Assets/GadGame/VIdeos/CTA.webm index 93ca8b3..8fd1860 100644 Binary files a/Assets/GadGame/VIdeos/CTA.webm and b/Assets/GadGame/VIdeos/CTA.webm differ diff --git a/Assets/Plugins/Febucci.meta b/Assets/Plugins/Febucci.meta new file mode 100644 index 0000000..8c43f36 --- /dev/null +++ b/Assets/Plugins/Febucci.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 766a79cc4c72adc929ac7638a34e1b15 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator.meta b/Assets/Plugins/Febucci/Text Animator.meta new file mode 100644 index 0000000..177296e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c3c851caa99d03d4a8c8842ded166a7c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes.meta b/Assets/Plugins/Febucci/Text Animator/Attributes.meta new file mode 100644 index 0000000..f0293eb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da631c92e6b893e49acea17d69d48252 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta new file mode 100644 index 0000000..61dd651 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 001402f99874ca24780daf2947cf5e14 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs new file mode 100644 index 0000000..f975e04 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(CharsDisplayTimeAttribute))] + public class CharsDisplayTimeAttributeDrawer : PropertyDrawer + { + const float minWaitTime = 0.0001f; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + //delay in seconds + Rect delayValueRect = new Rect(position.x, position.y, 70 + 230 - position.x, position.height); + delayValueRect.width = Mathf.Clamp(position.width * 0.6f, 170, position.width); + + Rect delayLabel = new Rect(delayValueRect); + delayLabel.x += delayLabel.width - 15; + delayLabel.width = 77; + + Rect charPerSecValueRect = new Rect(delayLabel); + charPerSecValueRect.x += charPerSecValueRect.width - 15; + charPerSecValueRect.width = 65; + + + Rect charPerSecLabelRect = new Rect(charPerSecValueRect); + charPerSecLabelRect.x += charPerSecLabelRect.width - 15; + charPerSecLabelRect.width = 120; + + switch (property.propertyType) + { + case SerializedPropertyType.Float: + + property.floatValue = EditorGUI.FloatField(delayValueRect, label, property.floatValue); + + EditorGUI.LabelField(delayLabel, $"s delay, ≈"); + + + + int charPerSecond = Mathf.RoundToInt(1 / property.floatValue); + + EditorGUI.LabelField(charPerSecLabelRect, "chars per sec"); + EditorGUI.BeginChangeCheck(); + charPerSecond = EditorGUI.IntField(charPerSecValueRect, charPerSecond); + + if (EditorGUI.EndChangeCheck()) + { + property.floatValue = 1f/charPerSecond; + } + + if (property.floatValue < minWaitTime) + property.floatValue = minWaitTime; + + break; + + + default: //unsupported, fallback to the default OnGUI + EditorGUI.PropertyField(position, property, label); + return; + } + + } + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta new file mode 100644 index 0000000..975987c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06ce1d00801daba44918ac07070012a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef new file mode 100644 index 0000000..7b2a8e3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Febucci.Attributes.Editor", + "rootNamespace": "", + "references": [ + "GUID:448b0b55421917e4784a8f2f7449081f" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta new file mode 100644 index 0000000..60e8dd3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fbcceeb83a7197e40b5e481f8eeb8508 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs new file mode 100644 index 0000000..92bdcc1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(MinValueAttribute))] + public class MinValueAttributeDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.PropertyField(position, property, label); + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + property.intValue = Mathf.Clamp(property.intValue, (int)(attribute as MinValueAttribute).min, int.MaxValue); + break; + + case SerializedPropertyType.Float: + property.floatValue = Mathf.Clamp(property.floatValue, (attribute as MinValueAttribute).min, float.MaxValue); + break; + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta new file mode 100644 index 0000000..7419d47 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6969374730fb584ea155e370491caf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs new file mode 100644 index 0000000..7a43dd8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs @@ -0,0 +1,49 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(NotZeroAttribute))] + public class NotZeroAttributeDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + int intValue = property.intValue; + intValue = EditorGUI.IntField(position, label, intValue); + if (intValue != 0) + property.intValue = intValue; + break; + + case SerializedPropertyType.Float: + float floatValue = property.floatValue; + floatValue = EditorGUI.FloatField(position, label, floatValue); + + if (floatValue != 0) + property.floatValue = floatValue; + + break; + + case SerializedPropertyType.Vector2: + Vector2 vecValue = property.vector2Value; + vecValue = EditorGUI.Vector2Field(position, label, vecValue); + + property.vector2Value = new Vector2( + (vecValue.x != 0 || vecValue.y!=0) ? vecValue.x : property.vector2Value.x, + (vecValue.y != 0 || vecValue.x!=0) ? vecValue.y : property.vector2Value.y); + + break; + + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta new file mode 100644 index 0000000..d9d6c6c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 319c5abbdd9c94e479d7c58013da0a7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs new file mode 100644 index 0000000..e34f1a3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs @@ -0,0 +1,47 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(PositiveValueAttribute))] + public class PositiveValueAttributeDrawer : PropertyDrawer + { + const float minValue = .01f; + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + int intValue = property.intValue; + intValue = EditorGUI.IntField(position, label, intValue); + if (intValue >= minValue) + property.intValue = intValue; + break; + + case SerializedPropertyType.Float: + float floatValue = property.floatValue; + floatValue = EditorGUI.FloatField(position, label, floatValue); + + property.floatValue = Mathf.Clamp(floatValue, minValue, floatValue); + break; + + case SerializedPropertyType.Vector2: + Vector2 vecValue = property.vector2Value; + vecValue = EditorGUI.Vector2Field(position, label, vecValue); + + vecValue.x = Mathf.Clamp(vecValue.x, minValue, vecValue.x); + vecValue.y = Mathf.Clamp(vecValue.y, minValue, vecValue.y); + + property.vector2Value = vecValue; + break; + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta new file mode 100644 index 0000000..ffb95cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9574f1311c20a8418059bbedf619737 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta new file mode 100644 index 0000000..6a0d661 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c54a190a44816374899a417122886ada +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs new file mode 100644 index 0000000..379614c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class CharsDisplayTimeAttribute : PropertyAttribute + { + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta new file mode 100644 index 0000000..ae69a8c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17a442d7a8bcb7843a7b81ae4b6fcbaa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef new file mode 100644 index 0000000..bf8b236 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef @@ -0,0 +1,14 @@ +{ + "name": "Febucci.Attributes.Runtime", + "rootNamespace": "", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta new file mode 100644 index 0000000..d2ace58 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 448b0b55421917e4784a8f2f7449081f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs new file mode 100644 index 0000000..b01f415 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class MinValueAttribute : PropertyAttribute + { + public float min = 0; + public MinValueAttribute(float min) + { + this.min = min; + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta new file mode 100644 index 0000000..d661541 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15c1cd35897ccae4ea16b7d7bd05c74b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs new file mode 100644 index 0000000..f009bd4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class NotZeroAttribute : PropertyAttribute + { + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta new file mode 100644 index 0000000..c44227b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 330d54a9b2a8cde41a7128d6f9418661 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs new file mode 100644 index 0000000..4715bd4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class PositiveValueAttribute : PropertyAttribute + { + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta new file mode 100644 index 0000000..fb3d5e5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f12d9869f06b66498d39516b6e88aa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data.meta b/Assets/Plugins/Febucci/Text Animator/Data.meta new file mode 100644 index 0000000..54597c9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64096182da37e607291d723f6c861fee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta new file mode 100644 index 0000000..7c83a3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9c7916894dff634f98968d3ee28a9a6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset new file mode 100644 index 0000000..e64272e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset @@ -0,0 +1,18 @@ +%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: 975089f62a0f141b0b6c1e96bb49c873, type: 3} + m_Name: Actions Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: bf4bdbc3b8f308d09915d845bb8add45, type: 2} + - {fileID: 11400000, guid: 95dbfc172929c069b889d2e360cfad2f, type: 2} + - {fileID: 11400000, guid: 9f8d00c4e2f2a02348224f1f3e7673ae, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta new file mode 100644 index 0000000..26ddba0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f78b267c3825f804a4727a8b68c329d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset new file mode 100644 index 0000000..ad062e6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset @@ -0,0 +1,16 @@ +%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: 24451f867ad2a6146baf57f938a44d18, type: 3} + m_Name: SpeedAction + m_EditorClassIdentifier: + tagID: speed + defaultSpeed: 2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta new file mode 100644 index 0000000..5730b7a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bf4bdbc3b8f308d09915d845bb8add45 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset new file mode 100644 index 0000000..38761cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset @@ -0,0 +1,15 @@ +%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: aed6905e7c644c14a804ef32a5216aa3, type: 3} + m_Name: WaitAnyInputAction + m_EditorClassIdentifier: + tagID: waitinput diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta new file mode 100644 index 0000000..8026803 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95dbfc172929c069b889d2e360cfad2f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset new file mode 100644 index 0000000..320fdc5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset @@ -0,0 +1,16 @@ +%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: 7806fdd5903ae4a1b8ddb77cde0d5832, type: 3} + m_Name: WaitForAction + m_EditorClassIdentifier: + tagID: waitfor + defaultTime: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta new file mode 100644 index 0000000..55fff21 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f8d00c4e2f2a02348224f1f3e7673ae +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta new file mode 100644 index 0000000..b13f25d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90b80a86f3dbb666891887f97cd9f52b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset new file mode 100644 index 0000000..35b119b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset @@ -0,0 +1,23 @@ +%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: 103e863f5c0347be8a512f431aaf5ec1, type: 3} + m_Name: Appearances Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: 580868ca94914f3a5b4799e19bbd3085, type: 2} + - {fileID: 11400000, guid: 710e372fa4a13b1479b5e6d0a55db0c8, type: 2} + - {fileID: 11400000, guid: 7316dbc102f59da72978008734e90982, type: 2} + - {fileID: 11400000, guid: 5685734b8affc629680c1bbb91624508, type: 2} + - {fileID: 11400000, guid: ca89d2a16f2b8654ab5c938d2fe4ca84, type: 2} + - {fileID: 11400000, guid: 7dbe7206d95daeb80aaef048450d3d13, type: 2} + - {fileID: 11400000, guid: f85299684f332935b8ab73a6ff36a848, type: 2} + - {fileID: 11400000, guid: 6b3c952806296327f9e007418fb4cdab, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta new file mode 100644 index 0000000..7de60b2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f440ba43b95f6c7e90fa305a0bbda32 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset new file mode 100644 index 0000000..092c734 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset @@ -0,0 +1,17 @@ +%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: 7303246fad8e2a049aebd6c0c71d2985, type: 3} + m_Name: DiagonalExpandAppearance + m_EditorClassIdentifier: + tagID: diagexp + baseDuration: 0.5 + diagonalFromBttmLeft: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta new file mode 100644 index 0000000..7d3f9e0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 580868ca94914f3a5b4799e19bbd3085 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset new file mode 100644 index 0000000..7a4d195 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset @@ -0,0 +1,16 @@ +%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: 6d26528e73e36f64dab95b69625232a7, type: 3} + m_Name: FadeAppearance + m_EditorClassIdentifier: + tagID: fade + baseDuration: 0.5 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta new file mode 100644 index 0000000..408f655 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 710e372fa4a13b1479b5e6d0a55db0c8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset new file mode 100644 index 0000000..d8926ec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset @@ -0,0 +1,17 @@ +%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: 3dbde6098d9bea441b3ac872e52073ba, type: 3} + m_Name: HorizontalExpandAppearance + m_EditorClassIdentifier: + tagID: horiexp + baseDuration: 0.5 + type: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta new file mode 100644 index 0000000..f8f416d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7316dbc102f59da72978008734e90982 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset new file mode 100644 index 0000000..6a71275 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset @@ -0,0 +1,18 @@ +%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: 146552007a93ecc42b0d63f26788e6cb, type: 3} + m_Name: OffsetAppearance + m_EditorClassIdentifier: + tagID: offset + baseDuration: 0.5 + baseAmount: 10 + baseDirection: {x: 1, y: 1} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta new file mode 100644 index 0000000..48297fb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5685734b8affc629680c1bbb91624508 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset new file mode 100644 index 0000000..ea2c3fd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset @@ -0,0 +1,17 @@ +%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: 6a65a9b7775dded41a0295e6f75be25d, type: 3} + m_Name: RandomDirectionAppearance + m_EditorClassIdentifier: + tagID: rdir + baseDuration: 0.5 + baseAmount: 10 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta new file mode 100644 index 0000000..223b9eb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca89d2a16f2b8654ab5c938d2fe4ca84 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset new file mode 100644 index 0000000..6b93610 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset @@ -0,0 +1,17 @@ +%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: 465a2951870a6954d8205f9c58a546de, type: 3} + m_Name: RotatingAppearance + m_EditorClassIdentifier: + tagID: rot + baseDuration: 0.7 + baseTargetAngle: 50 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta new file mode 100644 index 0000000..fe9d862 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7dbe7206d95daeb80aaef048450d3d13 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset new file mode 100644 index 0000000..0d34f42 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset @@ -0,0 +1,17 @@ +%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: 5ff5882c38f1b6c4682c7f207f0c98db, type: 3} + m_Name: SizeAppearance + m_EditorClassIdentifier: + tagID: size + baseDuration: 0.5 + baseAmplitude: 2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta new file mode 100644 index 0000000..5b9709a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f85299684f332935b8ab73a6ff36a848 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset new file mode 100644 index 0000000..f9523bb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset @@ -0,0 +1,17 @@ +%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: 351d9d9e5c9ea7946842aee1160f7731, type: 3} + m_Name: VerticalExpandAppearance + m_EditorClassIdentifier: + tagID: vertexp + baseDuration: 0.5 + startsFromBottom: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta new file mode 100644 index 0000000..e4491d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b3c952806296327f9e007418fb4cdab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta new file mode 100644 index 0000000..9717522 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07d1ecb778bb73bfbb89c1eddb804202 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset new file mode 100644 index 0000000..84d6a88 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.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: 103e863f5c0347be8a512f431aaf5ec1, type: 3} + m_Name: Behaviors Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: 656a96850718f58f088b6f292e2437fe, type: 2} + - {fileID: 11400000, guid: 17f5322bade6132c9af4e88f9a2608dd, type: 2} + - {fileID: 11400000, guid: 7e93996a566440e0cb3a0bb99a5d24c7, type: 2} + - {fileID: 11400000, guid: 54e34e17bd344def4935c48b2c318c77, type: 2} + - {fileID: 11400000, guid: 74ee166c61550bc05b79c18b1f045558, type: 2} + - {fileID: 11400000, guid: b9dfc028dcb14496299bc95c2bfcce2c, type: 2} + - {fileID: 11400000, guid: 3312357f8bfb641fe9a1ef97387e9b7e, type: 2} + - {fileID: 11400000, guid: 5a4b74322b62c23e4ac0f1ed011ae2df, type: 2} + - {fileID: 11400000, guid: 64683658af55e22b2b00b4662f5d4fc5, type: 2} + - {fileID: 11400000, guid: 4025512822b51274db8dc40a8fbd2d12, type: 2} + - {fileID: 11400000, guid: e6c038789abd1bf0aae6cb1b2126a805, type: 2} + - {fileID: 11400000, guid: 59d46f00fa8da9799b72c7b9ee0a173a, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta new file mode 100644 index 0000000..d769fd3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1ab346c8b166fe1babb05950e874fb1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset new file mode 100644 index 0000000..b65fb95 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset @@ -0,0 +1,18 @@ +%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: a333962955c4a08498d132d86d9ce19e, type: 3} + m_Name: BounceBehavior + m_EditorClassIdentifier: + tagID: bounce + baseAmplitude: 2 + baseFrequency: 1 + baseWaveSize: 0.05 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta new file mode 100644 index 0000000..861db06 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 656a96850718f58f088b6f292e2437fe +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset new file mode 100644 index 0000000..312e23b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset @@ -0,0 +1,19 @@ +%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: 01a91f0b9c670b242ae5c34286409cd9, type: 3} + m_Name: DangleBehavior + m_EditorClassIdentifier: + tagID: dangle + baseAmplitude: 7.87 + baseFrequency: 3.37 + baseWaveSize: 0.306 + anchorBottom: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta new file mode 100644 index 0000000..b40f576 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17f5322bade6132c9af4e88f9a2608dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset new file mode 100644 index 0000000..9884468 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset @@ -0,0 +1,17 @@ +%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: d1f1dde3a46b6e748885a8d202c32044, type: 3} + m_Name: FadeBehavior + m_EditorClassIdentifier: + tagID: fade + baseSpeed: 0.5 + baseDelay: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta new file mode 100644 index 0000000..5054d3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e93996a566440e0cb3a0bb99a5d24c7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset new file mode 100644 index 0000000..82bb9f1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset @@ -0,0 +1,19 @@ +%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: 5005fc4984831834d826c8a9e3d42443, type: 3} + m_Name: PendulumBehavior + m_EditorClassIdentifier: + tagID: pend + baseAmplitude: 24.7 + baseFrequency: 3.1 + baseWaveSize: 0.2 + anchorBottom: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta new file mode 100644 index 0000000..59e5c6c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54e34e17bd344def4935c48b2c318c77 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset new file mode 100644 index 0000000..d39b5e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset @@ -0,0 +1,17 @@ +%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: 5400420051c0a9341be4aece65080148, type: 3} + m_Name: RainbowBehavior + m_EditorClassIdentifier: + tagID: rainb + baseFrequency: 0.5 + baseWaveSize: 0.08 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta new file mode 100644 index 0000000..8a43c7b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74ee166c61550bc05b79c18b1f045558 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset new file mode 100644 index 0000000..f77fa84 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset @@ -0,0 +1,17 @@ +%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: c179eec3e2795104eb216e340b8d8513, type: 3} + m_Name: RotationBehavior + m_EditorClassIdentifier: + tagID: rot + baseRotSpeed: 180 + baseDiffBetweenChars: 10 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta new file mode 100644 index 0000000..30ea32e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9dfc028dcb14496299bc95c2bfcce2c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset new file mode 100644 index 0000000..b02c22a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset @@ -0,0 +1,18 @@ +%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: 144066a43449f48469b89b2e2c9ab37d, type: 3} + m_Name: ShakeBehavior + m_EditorClassIdentifier: + tagID: shake + baseAmplitude: 1.13 + baseDelay: 0.1 + baseWaveSize: 0.45 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta new file mode 100644 index 0000000..fd289dc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3312357f8bfb641fe9a1ef97387e9b7e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset new file mode 100644 index 0000000..a447064 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset @@ -0,0 +1,18 @@ +%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: 6da0c21b80efda84188912ce510ee1ca, type: 3} + m_Name: SizeBehavior + m_EditorClassIdentifier: + tagID: incr + baseAmplitude: 1.5 + baseFrequency: 4 + baseWaveSize: 0.2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta new file mode 100644 index 0000000..752641a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a4b74322b62c23e4ac0f1ed011ae2df +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset new file mode 100644 index 0000000..515aede --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset @@ -0,0 +1,18 @@ +%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: a740b03d4c3f2d84f9cfc7b3a6f8ea80, type: 3} + m_Name: SlideBehavior + m_EditorClassIdentifier: + tagID: slide + baseAmplitude: 5 + baseFrequency: 3 + baseWaveSize: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta new file mode 100644 index 0000000..fb051d2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64683658af55e22b2b00b4662f5d4fc5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset new file mode 100644 index 0000000..8288636 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset @@ -0,0 +1,18 @@ +%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: 63b7822b5552d3748b1acc2a07066822, type: 3} + m_Name: SwingBehavior + m_EditorClassIdentifier: + tagID: swing + baseAmplitude: 22.74 + baseFrequency: 3.65 + baseWaveSize: 0.171 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta new file mode 100644 index 0000000..ee13dc4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4025512822b51274db8dc40a8fbd2d12 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset new file mode 100644 index 0000000..42b7dfa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset @@ -0,0 +1,18 @@ +%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: 99de7ce7cdaed2d42b0bd233e69e67db, type: 3} + m_Name: WaveBehavior + m_EditorClassIdentifier: + tagID: wave + baseAmplitude: 7.27 + baseFrequency: 4 + baseWaveSize: 0.4 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta new file mode 100644 index 0000000..cb46bca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6c038789abd1bf0aae6cb1b2126a805 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset new file mode 100644 index 0000000..363541c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset @@ -0,0 +1,18 @@ +%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: 7c98870d7ebce9a4fa6c4a16e9701755, type: 3} + m_Name: WiggleBehavior + m_EditorClassIdentifier: + tagID: wiggle + baseAmplitude: 4.74 + baseFrequency: 7.82 + baseWaveSize: 0.551 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta new file mode 100644 index 0000000..861ef2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59d46f00fa8da9799b72c7b9ee0a173a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset new file mode 100644 index 0000000..7a9b544 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset @@ -0,0 +1,15 @@ +%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: 9e2a5ebb2c224910b14d053825d88b4a, type: 3} + m_Name: InstallationData + m_EditorClassIdentifier: + latestVersion: 2.0.2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta new file mode 100644 index 0000000..e7cecde --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73ab873d250d751aea5c0919aa4c705f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta b/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta new file mode 100644 index 0000000..9ee2b9c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d474c1e8238ea1a8baa2013d00d82747 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset new file mode 100644 index 0000000..98befbd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset @@ -0,0 +1,29 @@ +%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: 9743a50feedea474dbef99517d3e30eb, type: 3} + m_Name: TextAnimatorSettings + m_EditorClassIdentifier: + behaviors: + defaultDatabase: {fileID: 11400000, guid: d1ab346c8b166fe1babb05950e874fb1, type: 2} + enabled: 1 + openingSymbol: 60 + closingSymbol: 62 + appearances: + defaultDatabase: {fileID: 11400000, guid: 6f440ba43b95f6c7e90fa305a0bbda32, type: 2} + enabled: 1 + openingSymbol: 123 + closingSymbol: 125 + actions: + defaultDatabase: {fileID: 11400000, guid: 0f78b267c3825f804a4727a8b68c329d, type: 2} + enabled: 1 + openingSymbol: 60 + closingSymbol: 62 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta new file mode 100644 index 0000000..d925649 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35ca45d2ae32867448befbe9ae946a1c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example.meta b/Assets/Plugins/Febucci/Text Animator/Example.meta new file mode 100644 index 0000000..1881d16 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85011d1648ca8914cb0fc9500772569f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity new file mode 100644 index 0000000..72eafc4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity @@ -0,0 +1,535 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 49d28ee43fb9747d884ba6ecfade7616, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804841} + - component: {fileID: 1911804842} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -80.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Hi! Welcome to TextAnimator; have fun bringing your dialogues to life! + + + Examples: + + I''m + freezing. + + I''m joking. + + It''s a secret. + + Oh, + how lucky. + + I''m confused. + + So happy right + now. + + Head over the next example scenes to discover more! + + + I''d + love to share the projects you create with TextAnimator! Let me know (if you + want) aand have a lovely day! ^^ + + Aaaaaaaaaaaaaand please do not + forget to leave a review, it really helps + ^^' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 61.6 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 15.56 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 29 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 1 + animationLoop: 0 + timeScale: 0 + _text: 'Hi! Welcome to TextAnimator; have fun bringing your dialogues to life! + + + Examples: + + I''m + freezing. + + I''m joking. + + It''s a secret. + + Oh, + how lucky. + + An EXPLOSION. + + I''m confused. + + So + happy right now. + + Head over the next example scenes to discover more! + + + I''d + love to share the projects you create with TextAnimator! Let me know (if you + want) aand have a lovely day! ^^ + + Aaaaaaaaaaaaaand please + do not forget to leave a review, it really + helps ^^' + useDynamicScaling: 1 + referenceFontSize: 5 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.33333334 + waitMiddle: 0.06666667 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta new file mode 100644 index 0000000..90037ed --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6eaf322d703d50146afecde586026f57 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity new file mode 100644 index 0000000..04eee01 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity @@ -0,0 +1,639 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 2011447538} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b97a825c489d94194a088dd18fedd2f0, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriter: {fileID: 1911804841} +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -363.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to watch the text animate + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 28.3 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: + useDynamicScaling: 1 + referenceFontSize: 40 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!850595691 &2011447538 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta new file mode 100644 index 0000000..7f2c5aa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33f73b8875f94f64b867105f5c7d4747 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity new file mode 100644 index 0000000..7072f16 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity @@ -0,0 +1,650 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 567283253} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use multiple effects on the same + letters. YAY! + + + Example: writing "HEEEEY" + will result in "HEEEEY". + + + [Tip: if you have opened + multiple tags, you can use or {/} to close all of them + at once, instead of writing each single tag.]' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!850595691 &567283253 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press Play to watch how to stack effects on top of each other. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: Press Play to watch how to stack effects on top of each other. + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - rdir + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta new file mode 100644 index 0000000..231b54f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82a6944f7c7c3fa47856f534f7482122 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity new file mode 100644 index 0000000..ccd37d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity @@ -0,0 +1,593 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 384671842bbd047fdb6f337fea5de8cd, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use attributes to add similar effects with different values, + like: + + wiggle1 wiggle2 + + + + In + the previous example, the first tag is "". + + The + second tag is " a=2 f=2>", + which means it has a double ''amplitude'' and ''frequency'' + than the default one.' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to watch similar effects with different values + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: Press play to watch similar effects with different values + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - vertexp + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta new file mode 100644 index 0000000..f5b449a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85ee4ca1f3a508347b883d20385a5eac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity new file mode 100644 index 0000000..2d1303a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity @@ -0,0 +1,1645 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 49d28ee43fb9747d884ba6ecfade7616, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &86436864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 86436866} + - component: {fileID: 86436865} + m_Layer: 0 + m_Name: foliage_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &86436865 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 86436864} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &86436866 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 86436864} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.053, y: -2.343, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &332677958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 332677959} + - component: {fileID: 332677960} + m_Layer: 0 + m_Name: fake shadow (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &332677959 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 332677958} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 4.9811, y: -2.0548997, z: 0} + m_LocalScale: {x: 0.9463681, y: 0.879066, z: 0.045535617} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!212 &332677960 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 332677958} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &376784909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 376784910} + - component: {fileID: 376784912} + - component: {fileID: 376784911} + - component: {fileID: 376784914} + - component: {fileID: 376784913} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &376784910 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 855521401} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.26, y: 0.19} + m_SizeDelta: {x: 4.8232, y: 1.5871} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &376784911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to see an example of events + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 4.72 + m_fontSizeBase: 4.86 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 1.8 + m_fontSizeMax: 4.72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 376784912} + m_maskType: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 +--- !u!23 &376784912 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &376784913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.03 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 1 + waitForNewLines: 1 + waitForLastCharacter: 0 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &376784914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 1 + animationLoop: 0 + timeScale: 0 + _text: Hello how + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 0} + databaseAppearances: {fileID: 0} + databaseActions: {fileID: 0} + defaultAppearancesTags: + - diagexp + defaultDisappearancesTags: + - size + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.89, y: -0.48, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &557036334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 557036336} + - component: {fileID: 557036335} + m_Layer: 0 + m_Name: character + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &557036335 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557036334} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 3351748369286481944, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &557036336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557036334} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.43, y: -2.4, z: 0} + m_LocalScale: {x: 1.14, y: 1.14, z: 1.14} + m_Children: + - {fileID: 1715889608} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &673277488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 673277490} + - component: {fileID: 673277489} + m_Layer: 0 + m_Name: crate_0 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &673277489 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673277488} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -1 + m_Sprite: {fileID: 834852548192020694, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &673277490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673277488} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.973, y: -2.0629997, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &835184617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 835184619} + - component: {fileID: 835184618} + m_Layer: 0 + m_Name: foliage_2 (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &835184618 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835184617} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &835184619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835184617} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3.793, y: -2.2919998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &855521399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855521401} + - component: {fileID: 855521400} + m_Layer: 0 + m_Name: dialogue box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &855521400 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855521399} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 0ee0b44b8c03546a392c57dc59d85589, type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 1 + m_Size: {x: 7.5092654, y: 3.6853285} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &855521401 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855521399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.23, y: 0.26, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 376784910} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1242330695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1242330697} + - component: {fileID: 1242330696} + m_Layer: 0 + m_Name: foliage_2 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1242330696 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242330695} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1242330697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242330695} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.473, y: -2.7729998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1264690267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1264690269} + - component: {fileID: 1264690268} + m_Layer: 0 + m_Name: foliage_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1264690268 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1264690267} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: -7061757903698255618, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1264690269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1264690267} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.093, y: -2.7629998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1625340089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1625340092} + - component: {fileID: 1625340091} + - component: {fileID: 1625340090} + m_Layer: 0 + m_Name: Continue text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1625340090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: (press any key to continue) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4290690750 + m_fontColor: {r: 0.74509805, g: 0.74509805, b: 0.74509805, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18.65 + m_fontSizeBase: 12.12 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 1625340091} + m_maskType: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 +--- !u!23 &1625340091 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!224 &1625340092 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.18482, y: 0.18482, z: 0.18482} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.45, y: -1.06} + m_SizeDelta: {x: 22.5552, y: 2.2409} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1694713420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1694713421} + m_Layer: 0 + m_Name: Scenery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1694713421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694713420} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1823198194} + - {fileID: 673277490} + - {fileID: 1264690269} + - {fileID: 86436866} + - {fileID: 1242330697} + - {fileID: 835184619} + - {fileID: 1787796922} + - {fileID: 332677959} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1715889606 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1715889608} + - component: {fileID: 1715889607} + m_Layer: 0 + m_Name: fake shadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1715889607 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715889606} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1715889608 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715889606} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 0.009999986, y: 0.019999972, z: 0} + m_LocalScale: {x: 1.5824505, y: 1.4699122, z: 0.07614146} + m_Children: [] + m_Father: {fileID: 557036336} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!1 &1787796920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787796922} + - component: {fileID: 1787796921} + m_Layer: 0 + m_Name: fake shadow (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1787796921 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787796920} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1787796922 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787796920} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 4.2630005, y: -2.5129998, z: 0} + m_LocalScale: {x: 1.1683557, y: 1.0852667, z: 0.05621681} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!1 &1790845101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1790845102} + - component: {fileID: 1790845103} + m_Layer: 0 + m_Name: '[Script is here!]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1790845102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790845101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1790845103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790845101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90f9467af4b1d44aab0c2f932db2b5a7, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriter: {fileID: 376784913} + dialoguesLines: + - Hi! Welcome!! + - You can easily have characters change expressions mid-sentence.. + - Did you see it?? + - ' Probaby I was too too fast.' + - Noticed it now? + - These are named "Events", and can be called whenever a specific + part of the text is shown. + - Of course you can use them to make anything happen in your game, not + only characters! + - For example, you can make the scenery move word + after word! + - It's your turn now, there's no limit to creativity here!! + faces: + - {fileID: 3351748369286481944, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 567328745045655870, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 2750705142841656183, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: -7053939661997144990, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 1892523670701107293, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 405182146505222058, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 2785564300681498144, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 6645427384175290001, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + faceRenderer: {fileID: 557036335} + continueText: {fileID: 1625340089} + crates: + - {fileID: 1823198194} + - {fileID: 673277490} +--- !u!1 &1823198192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1823198194} + - component: {fileID: 1823198193} + m_Layer: 0 + m_Name: crate_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1823198193 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823198192} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 834852548192020694, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1823198194 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823198192} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.2530003, y: -2.5229998, z: 0} + m_LocalScale: {x: 0.83, y: 0.83, z: 0.83} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta new file mode 100644 index 0000000..4c2a48e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6a3261d7db5245c5b24f3ec0d4968b5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity new file mode 100644 index 0000000..4fbe0c7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity @@ -0,0 +1,664 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 2 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: '---------------------' + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use special tags to pause the typewriter until a certain action + is completed. + + + Example: + + + Waiting one second: done. + + Waiting three seconds: done. + + Waiting your input: done. + + + You can also create your own (via C#). + + Read the docs for more ^^' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: '---------------------' + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Press play to test typewriter actions + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 1911804839} + characterCount: 37 + spriteCount: 0 + spaceCount: 5 + wordCount: 6 + linkCount: 0 + lineCount: 2 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + canSkipTypewriter: 1 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Febucci.UI.Core.CharacterEvent, Febucci.TextAnimator.Runtime, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + waitForNormalChars: 0.03 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + triggerAnimPlayerOnChange: 0 + effectIntensityMultiplier: 100 + appearancesContainer: + tagsFallback_Appearances: + - rot + - fade + tagsFallback_Disappearances: + - size + values: + defaults: + sizeDuration: 0.36 + sizeAmplitude: 2 + fadeDuration: 0.3 + verticalExpandDuration: 0.3 + verticalFromBottom: 0 + horizontalExpandDuration: 0.3 + horizontalExpandStart: 0 + diagonalExpandDuration: 0.3 + diagonalFromBttmLeft: 0 + offsetDir: {x: 1, y: 1} + offsetDuration: 0.3 + offsetAmplitude: 1 + rotationDuration: 0.3 + rotationStartAngle: 180 + randomDirDuration: 0.3 + randomDirAmplitude: 1 + presets: [] + tags_fallbackBehaviors: [] + behaviorValues: + defaults: + wiggleAmplitude: 0.15 + wiggleFrequency: 8.9 + waveFrequency: 4.78 + waveAmplitude: 0.2 + waveWaveSize: 0.18 + angleSpeed: 180 + angleDiffBetweenChars: 10 + swingAmplitude: 27.5 + swingFrequency: 5 + swingWaveSize: 0 + shakeStrength: 0.085 + shakeDelay: 0.04 + sizeAmplitude: 1.4 + sizeFrequency: 4.84 + sizeWaveSize: 0.18 + slideAmplitude: 0.12 + slideFrequency: 5 + slideWaveSize: 0 + bounceAmplitude: 0.08 + bounceFrequency: 1 + bounceWaveSize: 0.08 + hueShiftSpeed: 0.8 + hueShiftWaveSize: 0.08 + fadeDelay: 1.2 + dangleAmplitude: 0.13 + dangleFrequency: 2.41 + dangleWaveSize: 0.18 + dangleAnchorBottom: 0 + pendAmplitude: 25 + pendFrequency: 3 + pendWaveSize: 0.2 + pendInverted: 0 + presets: [] + scriptable_globalBehaviorsValues: {fileID: 0} + scriptable_globalAppearancesValues: {fileID: 0} + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingEffectsOnNewText: 1 + timeScale: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta new file mode 100644 index 0000000..be677bf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba92474cac6c572459cd8fb75148ea94 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font.meta new file mode 100644 index 0000000..ab11377 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b13dc9321a13ef4383917b6db657d65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset new file mode 100644 index 0000000..68cf88b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset @@ -0,0 +1,5367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!28 &-2340667833886341526 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lato-Regular Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 1048576 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020eeffffeb6b000000000000000000000000000000000000177ac4e9fae7bd6f0d00000000000000000000000c6dbae5f9ebc77d1a000000000000000000000000000000000000007cffffffffa300000000000000000000000000000000000000009bffffffff80000000000000000000000000000064fffffffaaa06000000000000000000000000000000000000000010ffffffffffffffffffffffffffffffffffffffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000a56798080807807000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000c7e7f6b1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000034fffffffffffffffffffffffffffffef6e9cdaa773b02000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d0000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000000000000000002c7ab9dff5fbf0d9b68445050000000000000000000028c5faffffffe12000000000000000000bedfffffa9e00000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff1800000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000000000000000000000000058ffffffff7b0000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000001aacf5ec8908000000000000000000000000000000000000000006478fc9e2f7f9eac7934903000000000000000000000ad9ffffffe833000000000000000000000000000fc9ffffffff8d0000000000000000000000000348727042010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffe4c0000000000000000000000000000000071f3ffffffffffffffea5900000000000000000054e8fffffffffffffff579010000000000000000000000000000000000cdfffffffff10700000000000000000000000000000000000004ecffffffffd0000000000000000000000000000003d7ffffffff8a00000000000000000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffff3c00000000000000000000000000000000000000000000000000000000000000000000002de2fffffffffc51000000000000000000000000000358befdfffffffffffffffffffffffffab44c0100000000000000000000000000008efffff85f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c01000000000000000000000000000000000034ffffffffffffffffffffffffffffffffffffffffffe892240000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000000000000003ebdffffffffffffffffffffffed911a0000000000000028eaffffffffe3220000000000000000000082ffffffff4f000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000c0ffffffffe00200000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000007d7ffffffffa4000000000000000000000000000000000000076be4ffffffffffffffffffffe0530000000000000000000036fcffffffe10f000000000000000000000000a3ffffffffd60800000000000000000000000093ffffffff76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffffed1e000000000000000000000000000097ffffffffffffffffffffff780000000000000070feffffffffffffffffffffa5010000000000000000000000000000001effffffffffff4f00000000000000000000000000000000000047ffffffffffff21000000000000000000000000000053fffffffff619000000000000000000000000000000000000004effffffffffffffffffffffffffffffffffffffffff3c0000000000000000000000000000000000000000000000000000000000000000000026e9fffffffffe610000000000000000000000000055deffffffffffffffffffffffffffffffffffffd4470000000000000000000000000006d0fffffc3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd4470000000000000000000000000000000034fffffffffffffffffffffffffffffffffffffffffffffffda41c0000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000000000793fefffffffffffffffffffffffffffff78e150000000022e5ffffffffe625000000000000000000000015f6ffffffbf000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000000028ffffffffffff4b00000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000055ffffffffffff2a0000000000000000000000000000000023d3ffffffffffffffffffffffffffffb21200000000000000000082ffffffffa1000000000000000000000049fffffffffc350000000000000000000000000092ffffffff750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7ffffffc80500000000000000000000000067ffffffffffe6d1e6fffffffffe4e000000000042fdffffffffecd1dfffffffffff7c0000000000000000000000000000006effffffffffffa50000000000000000000000000000000000009dffffffffffff71000000000000000000000000000000c9ffffffff92000000000000000000000000000000000000006effffffffe4cccccccccccccccccccccccccccccccc2f0000000000000000000000000000000000000000000000000000000000000000001ee2ffffffffff7300000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000000000002af6ffffdf0f00000000074a82b5d8e9f8fbf0dcbb9057140000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e000000000000000000000000000034ffffffffffd2cccccccccccccccccdd6ecfffffffffffffffff463000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000000007b7ffffffffffffffecd3d2e2fdffffffffffffef4e00001cdfffffffffe8270000000000000000000000000095ffffffff2f0000000000000000000000000000000033cccccccccccccccccccccccccccccccccccccccccccccccccccc130000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000000000090ffffffffffffb300000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000078ffffffffffff4d0000000000000000000000000000003beffffffffffffff2d7d8f2ffffffffffffcd10000000000000000004ccffffffff520000000000000000000de2ffffffff8400000000000000000000000000008affffffff6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001dedffffff8e000000000000000000000010f2ffffffbe2d0000002dbdffffffe40700000002d8ffffffd43e0000001da3fffffffb210000000000000000000000000000bffffffffffffff3080000000000000000000000000000000005edffffffffffffc200000000000000000000000000000041fffffffff81b0000000000000000000000000000000000008dffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016daffffffffff8600000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000006bffffffa700002d9beffffffffffffffffffffffffffcbb550300000000000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000000034ffffffffff200000000000000000000000114a97eeffffffffffff9c03000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000000a8ffffffffffed802500000000083d89e7fffffffffe891ad9ffffffffea2a000000000000000000000000000021fcffffff9d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000000000000009eefffffffffffffd1e000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000054ffffffffffff2700000000000000000000000000001feafffffffffda03801000000328ffaffffffffc805000000000000000028f6ffffffeb18000000000000000096ffffffffd005000000000000000000000000000082ffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffff4f0000000000000000000078ffffffc505000000000004c1ffffff6700000050ffffffe1110000000000009dffffff970000000000000000000000000013fcffffffffffffff520000000000000000000000000000000049fffffffffffffffd15000000000000000000000000000000b9ffffffff95000000000000000000000000000000000000acffffffff4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d0ffffffffff9800000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000b3ffffff76a1fdffffffffffffffffffffffffffffffffffdd550000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe82800000000000000000000000034ffffffffff2000000000000000000000000000000f88f7ffffffffffad03000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000054ffffffffffbb170000000000000000000978f0fffffffff7ffffffffec2d00000000000000000000000000000000a7fffffff715000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8ffffffffe93500000000000000000387fffffffffe470000000000000000000000000060fffffff7c7ffffff83000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000005d3ffffffff9f000000000000000000000000000001caffffffffeb3d00000000000000002bddffffffff790000000000000000006fffffffffb4000000000000003dfefffffff92f0000000000000000000000000000007affffffff5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000089ffffffef20000000000000000000c6ffffff380000000000000031ffffffba0000009effffff600000000000000012f6ffffe90100000000000000000000000060ffffffffffffffffa8000000000000000000000000000000009fffffffffffffffff6300000000000000000000000000000031fefffffff91e0000000000000000000000000000000000cbffffffff2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc5ffffffffffa902000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe018000000000000000000000015e8ffffffffffffffffffffffffffffffffffffffffffffffffb6170000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe018000000000000000000000034ffffffffff200000000000000000000000000000000021d6ffffffffff9800000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000004e1ffffffffc10700000000000000000000000016c0ffffffffffffffee30000000000000000000000000000000000030ffffffff7b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000000c8ffffffc585ffffffe6040000000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000016a7f4ea8406000000000000000000000000000057fffffffff52c0000000000000000000020e6fffffff620000000000000000001bcffffffff66000000000008d9ffffffff7b0000000000000000000000000000000073ffffffff570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c3ffffffca060000000000000008faffffe5000000000000000000dbfffff7050000dbfffffe0f0000000000000000b3ffffff2d000000000000000000000000b1ffffffffe6fffffff40a000000000000000000000000000005eeffffffedffffffffb400000000000000000000000000000000a8ffffffff990000000000000000000000000000000000ebffffffff0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bbffffffffffb805000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb0100000000000000000000004affffffffffffffffffffffffffffffffffffffffffffffffffe732000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000000000034ffffffffff20000000000000000000000000000000000011c1ffffffffff5c0000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000048fffffffff621000000000000000000000000000004a4ffffffffffef3300000000000000000000000000000000000000baffffffe505000000000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d00000000000000000000002fffffffff823dffffffff520000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6ffffffff6900000000000000000000000057ffffffff920000000000000000001deffffffff4230000000088ffffffffc903000000000000000000000000000000006bffffffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bebffffff91000000000000001fffffffb9000000000000000000abffffff1b0000f7ffffe100000000000000000083ffffff4b00000000000000000000000af6ffffffff82ffffffff5500000000000000000000000000004bffffffff9af0fffffff80c00000000000000000000000000000024fafffffffa200000000000000000000000000000000affffffffee000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbefd6b2753406aeffffffffffc50a00000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b0000000000000000000004a3ffffffffffffffe092572b13050b1f3462a7ebfffffffffffffff3390000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b0000000000000000000034ffffffffff200000000000000000000000000000000000000eddfffffffff1170000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc4000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400008affffffffa600000000000000000000000000000028e5ffffffffff6f000000000000000000000000000000000000000043ffffffff59000000000000000000000000000000000000000000000000001cffffffe80000000000000000000000000000002bfffffffff1090000000000000000000000000076ffffffffb2000000000000000000000097ffffffff3602e9ffffffba0000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffffe20500000000000000000000000000c9ffffffeb050000000000000000005cffffffffc503000032fbfffffff728000000000000000000000000000000000063ffffffff4900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047feffffff5300000000000031ffffffa90000000000000000009affffff300009ffffffd100000000000000000072ffffff60000000000000000000000052fffffffffd18f6ffffffab0000000000000000000000000000a1ffffffff55bcffffffff550000000000000000000000000000000096ffffffff9d00000000000000000000000000000029ffffffffd00000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffff8ffffffffffd21100000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed11000000000000000001a8ffffffffffffd4480000000000000000000000035fdbffffffffffffee28000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed1100000000000000000034ffffffffff200000000000000000000000000000000000000036fbffffffff9a0000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000b0ffffffff6000000000000000000000000000002de9ffffffffffffde080000000000000000000000000000000000000000ccffffffc9000000000000000000000000000000000000000000000000001cffffffe80000000000000000000000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000cf2ffffffdb010090fffffffe2300000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074ffffffff84000000000000000000000000000067ffffffff4d00000000000000000000aaffffffff790004cfffffffff730000000000000000000000000000000000005bffffffff410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085fffffff02300000000002bffffffad0000000000000000009fffffff2a0004ffffffd500000000000000000077ffffff5a0000000000000000000000a3ffffffffcc00b6fffffff60b00000000000000000000000006f0fffffff80d7fffffffffa60000000000000000000000000000000018f5fffffffb23000000000000000000000000000049ffffffffb1000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffffffdd190000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d000000000000000082ffffffffffffffec2000000000000000000000000000037efeffffffffffd2080000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d00000000000000000034ffffffffff20000000000000000000000000000000000000000091fffffffffb1c000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000bcffffffff450000000000000000000000000032ecffffffffffffffff7e000000000000000000000000000000000000000056ffffffff380000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000067ffffffff7700002affffffff8a00000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adffffffff43000000000000000000000000000012fdffffff8f0000000000000000000013e6fffffffa237affffffffc30200000000000000000000000000000000000053ffffffff3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c0ffffffcd070000000019ffffffc4000000000000000000b7ffffff180000f1ffffec0000000000000000008fffffff470000000000000000000004eeffffffff820062ffffffff580000000000000000000000004dffffffffb00036fffffffff0060000000000000000000000000000000085ffffffffffffffffffffffffffffffffffffffffffffffff9300000000000000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffff6a0000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000003dfefffffffff0f9ffffce0900000000000000000000000000004ff4ffffffffff8700000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe905000000000000000034ffffffffff20000000000000000000000000000000000000000021fcffffffff860000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000abffffffff4700000000000000000000000037efffffffffeb93fffffff40f000000000000000000000000000000000000005effffffffa70000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b000000000000000000cefffffffb17000000c5ffffffeb07000000000000000000000000000000000000001cffffffe8000000000000000000000000000033cccccccccccccccccccccccccccccccccccccccccccccccccccc130000c5ffffffff19000000000000000000000000000000d7ffffffc1000000000000000000000049ffffffffaef8fffffff423000000000000000000000000000000000000004cffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e9ffffff950000000002effffff3050000000000000003edffffef020000caffffff210000000000000000c9ffffff200000000000000000000044ffffffffff350010f9ffffffae000000000000000000000000a2ffffffff590001e7ffffffff47000000000000000000000000000000000fedffffffffffffffffffffffffffffffffffffffffffffff75000000000000000000000000000000000000000000000000000030e6fffffffffffffffffffffffffffffffffffffffffffffffe8d03000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000005dafffffffffc4769ffffffa100000000000000000000000000000056fffffffffff922000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000000034ffffffffff20000000000000000000000000000000000000000000adffffffffdf0000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000089ffffffff6d00000000000000000000003cf2ffffffffe92c06e2ffffff6c00000000000000000000000000000000000000cefffffffffb1b00000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000037ffffffffaf0000000060ffffffff5a000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000daffffffff07000000000000000000000000000000a2fffffff101000000000000000000000098ffffffffffffffff6a000000000000000000000000000000000000000044ffffffff2b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044fdffffff5700000000b3ffffff590000000000000053ffffffb20000008bffffff81000000000000002bffffffdf000000000000000000000095ffffffffe7010000b3fffffff70d0000000000000000000007f0fffffff60c00009cffffffff97000000000000000000000000000000000074ffffffffffffffffffffffffffffffffffffffffffffff570000000000000000000000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffab0500000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000066ffffffffff7700009effffff6c0000000000000000000000000000008effffffffff980000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000000000034ffffffffff200000000000000000000000000000000000000000005dffffffffff2f0000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000045ffffffffb80000000000000000000042f4ffffffffe82a000077ffffffd400000000000000000000000000000000000040ffffffffffff8500000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000faffffffff120000000000000000000000000000008bffffffff8200000000000000009fffffffff4b0000000009f0ffffffc1000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000e0ffffffff0400000000000000000000000000000081ffffffff1800000000000000000000000bdbffffffffffffbb0100000000000000000000000000000000000000003cffffffff230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081fffffff2250000005affffffe51b000000000019e2ffffff5a00000032fffffff63100000000000bc8ffffff860000000000000000000001e4ffffffff9b0000005bffffffff5b000000000000000000004effffffffab0000004fffffffffe6010000000000000000000000000000000008e2ffffffffe2ccccccccccccccccccccccccf8ffffffff3900000000000000000000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffab01000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000001ddffffffffdc04000008cbfffffa3c00000000000000000000000000000aeafffffffff71000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd7000000000000000034ffffffffff2000000000000000000000000000000000000000000021ffffffffff6b0000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff580000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000005e0fffffffd2c000000000000000048f7ffffffffe6280000001afcffffff260000000000000000000000000000000000b0ffffffffffffeb08000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000f9ffffffff130000000000000000000000000000008cffffffff810000000000000010f6ffffffe303000000000095ffffffff2a0000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000cbffffffff160000000000000000000000000000006dffffffff28000000000000000000000000bbffffffffffff4d00000000000000000000000000000000000000000034ffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bdffffffd008000004ddffffffe5651b051b65e4ffffffdf0400000000bafffffff27723061454d3fffffff6170000000000000000000036ffffffffff4e0000000cf6ffffffb100000000000000000000a4ffffffff540000000af7ffffffff39000000000000000000000000000000000063ffffffffbc000000000000000000000000efffffffff1b000000000000000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffff7b000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d00000042ffffffffff61000000001eebffffe71a000000000000000000000000000079ffffffffff6000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000034ffffffffff2000000000000000000000000000000000000000000000e3ffffffff9e000000000000000076ffffffffab000000000000000000000000002fffffffffea060000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000066ffffffffc6050000000000004ef9ffffffffe5260000000000c7ffffff650000000000000000000000000000000023fdffffffffffffff63000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000006effffffff820000000000002fffffffff910000000000000033ccccccccccccccccccccd1fffffffbcccccccccccccccccccccc130000000000000000000000000000000000000000000000000000000000000000b2ffffffff410000000000000000000000000000005dffffffff36000000000000000000000066ffffffffffffffd80900000000000000000000000000000000000000002cffffffff15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017e7ffffff990000003dfcfffffffffffffffffffffffc3e000000000021f0ffffffffffffffffffffffff65000000000000000000000086fffffffff70a00000000acfffffff80f000000000000000007f1fffffff30900000000b5ffffffff89000000000000000000000000000000000003d6ffffffff41000000000000000000000efffffffffa02000000000000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6fffffffffd370000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f00000098ffffffffe904000000000043fcffffc506000000000000000000000000000ffaffffffffae00000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000034ffffffffff2000000000000000000000000000000000000000000000beffffffffc0000000000000000015f9fffffffa1600000000000000000000000095ffffffff89000000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000001bdffffffff9f020000000055faffffffffe32400000000000083ffffffa50000000000000000000000000000000092ffffffffc7ffffffd2000000000000000000000033ccccccccccccccccccccd1fffffffbcccccccccccccccccccccc13000000d3ffffffff38000000000000000000000000000000b2ffffffff5a00000000000000d5fffffffe2000000000000000caffffffef0900000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000078ffffffff82000000000000000000000000000000a6ffffffff450000000000000000000020f2fffffff0ebffffff91000000000000000000000000000000000000000025ffffffff0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040fcffffff5a0000005ffbfffffffffffffffffffa5f0000000000000041f1ffffffffffffffffffff86000000000000000000000000d7ffffffffb5000000000054ffffffff5e000000000000000050ffffffffa6000000000068ffffffffda00000000000000000000000000000000000051ffffffffc5000000000000000000002fffffffffde000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffce0300000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c000000daffffffff9b0000000000000075ffffff960000000000000000000000000000c4ffffffffe900000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c0000000000000034ffffffffff2000000000000000000000000000000000000000000000acffffffffdd000000000000000000a7ffffffff7600000000000000000000000af0fffffffe23000000000000000000fcffffffe8000000000000000000000099ffffffff4d0000000000000000000021ffffffffc20000000018dcffffffffae0f00005bfcffffffffe123000000000000004effffffcf0000000000000000000000000000000ff3ffffffec40ffffffff410000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000000aaffffffff66000000000000000000000000000000e1ffffffff320000000000003effffffffb9000000000000000065ffffffff6100000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffe404000000000000000000000000002bfcffffffff4400000000000000000001beffffffff6980fffffffe44000000000000000000000000000000000000001dffffffff06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfffffff3280000003ed0ffffffffffffffcf3d00000000000000000029bcffffffffffffffe15800000000000000000000000027ffffffffff68000000000009f3ffffffb40000000000000000a6ffffffff4f00000000001bffffffffff2b000000000000000000000000000000000000c8ffffffff4a0000000000000000004fffffffffffffffffffffffffffffffffffffffa8000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff5b0000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000014ffffffffff5e0000000000000000aaffffff610000000000000000000000000081ffffffffff1a00006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff580000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000009affffffffe900000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000fcffffffe80000000000000000000000a5ffffffff5e000000000000000000002effffffffb3000000000021daffffffffe15462fdffffffffe021000000000000000024ffffffe700000000000000000000000000000074ffffffff9701ddffffffb00000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000006affffffffa200000000000000000000000000001dffffffffef02000000000000a6ffffffff5500000000000000000cf2ffffffc900000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d2ffffffff7300000000000000000000000004c7ffffffffff380000000000000000006dffffffffc4010fe4ffffffe31000000000000000000000000000000000000015fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b9ffffffd30900000002438eb4c5b38d41010000000000000000000000003583b0c5b7964e070000000000000000000000000078ffffffffff1c000000000000a5fffffff91100000000000008f3fffffff107000000000000ceffffffff7b00000000000000000000000000000000000040ffffffffce0100000000000000006fffffffffffffffffffffffffffffffffffffffa80000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffcc00000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100003affffffffff3000000000000000000cd4fffff7340000000000000000000000004effffffffff3c000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff610000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000008cfffffffff100000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000fcffffffe80000000000000000000000bfffffffff84000000000000000000004bffffffffa100000000000010b1ffffffffffffffffffffde1f00000000000000000000c5fffffc020000000000000000000000000003e1ffffffff2d0076fffffffd2200000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff1800000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000014f8ffffffea060000000000000000009affffffff31000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000001aacf5ec8908000000000000000000000000000058fffffffff83e0000000000000000000002a0ffffffffffff2b000000000000000024f5fffffff92a00004bffffffffa40000000000000000000000000000000000000dfffffff700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e5f9edcb84220000000015e5ffffff9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9ffffffffce000000000000004dffffffff6100000000000052ffffffffa10000000000000081ffffffffcc00000000000000000000000000000000000000b8ffffffff5300000000000000008fffffffffffffffffffffffffffffffffffffffa80000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff3300000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800005bffffffffff1000000000000000000025f0ffffe11400000000000000000000003affffffffff5200006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff580000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000009bffffffffe80000000000000000000071ffffffffa70000000000000000002bffffffffe70400000000000000000000fcfffffff10c00000000000000000005f0ffffffffd10000000000000000000086ffffffff77000000000000000057e2ffffffffffffffdc1d000000000000000000000000000000000000000000000000000000000056ffffffffbf000013f7ffffff8e00000000000000000000000000000000000000001cffffffe800000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000076ffffffff8c0000000000000000000034ffffffff98000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000007d7ffffffffa4000000000000000000000000000002c0fffffffff762010000000000000019b8ffffffffffffff0d0000000000000002c4ffffffff8100000000a1ffffffff55000000000000000000000000000000000005ffffffef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059eafffffffffffffffa8e050000003dfcffffff5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001afeffffffff810000000000000006efffffffb7000000000000a8ffffffff4a0000000000000034ffffffffff1d00000000000000000000000000000000000030feffffffd50200000000000000afffffffffd9cccccccccccccccccccccccccccc8500000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff81000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b00006affffffffff01000000000000000000004dfeffffbd030000000000000000000026ffffffffff5d000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000000000034ffffffffff2000000000000000000000000000000000000000000000adffffffffdc0000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000fcffffffffba05000000000000000053ffffffffffff50000000000000000009e4ffffffff3c0000000000000000000689ffffffffffda1b000000000000000000000000000000000000000000000000000000000000c7ffffffff52000000a1fffffff10c000000000000000000000000000000000000001cffffffe80000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf00000000000001dcffffffff280000000000000000000000cefffffff30d0000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000055ffffffffffff2a000000000000000000000000000019e9ffffffffffcd712d1306184897f6fffffea4ffffffe5000000000000000074ffffffffd8070000000010e6ffffffed190000000000000000000000000000000000fdffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffbe0800000078fffffff52a0000000000000000000000000000000000000000000000000000000000000000000000000000000000006affffffffff3400000000000000009efffffffb130000000009f4ffffffed050000000000000001e5ffffffff6d00000000000000000000000000000000000000a6ffffffff5c00000000000000cfffffffff3100000000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffca000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d000074fffffffffb00000000000000000000000082ffffff8b0000000000000000000019ffffffffff5e000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000000000034ffffffffff2000000000000000000000000000000000000000000000beffffffffc00000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000fcffffffffffbc1500000000000014dfffffffc6ffffed2c0000000000000098ffffffffe40400000000000000000007d0ffffffffda1a00000000000000000000000000000000000000000000000000000000000037ffffffffe00300000037ffffffff6c000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000b3ffffffffea370000000000000000048afffffffffd4200000000000045ffffffffc400000000000000000000000069ffffffff680000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000078ffffffffffff4d0000000000000000000000000000002ee4fffffffffffffffffffffffffffffe6985ffffffb90000000000000029f7fffffffe3e0000000000004dffffffffb60000000000000000000000000000000000f6ffffe1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050ffffffffffecd1ddfeffffffff9f00000001b5ffffffd50b0000000000000000000000000000000000000000000000000000000000000000000000000000000000bbffffffffe601000000000000000046ffffffff640000000054ffffffff9c0000000000000000009affffffffbe0000000000000000000000000000000000000023faffffffdc04000000000000efffffffff1200000000000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffff8030000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c000070ffffffffff0c000000000000000000000001b5ffffff560000000000000000002affffffffff53000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000034ffffffffff2000000000000000000000000000000000000000000000e5ffffffff9e00000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000fcfffffff6ffffe6710e0000034adafffffffd25ccfffff377140000002db0ffffffffff79000000000000000000008affffffffe11c00000000000000000000000000000000000000000000000000000000000000a8ffffffff760000000000ccffffffda010000000000000000000000000000000000001cffffffe8000000000000000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff8000000000000000adffffffff5f0000000000000000000000000ef5ffffffd00000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000054ffffffffffff27000000000000000000000000000000001dc6fffffffffffffffffffffffff05100c7ffffff7900000000000003caffffffff9a0000000000000000a4ffffffff6700000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e0ffffffce3a000000178fffffffff3b00000013e2ffffffa10000000000000000000000000000000000000000000000000000000000000000000000000000000010faffffffff9a00000000000000000003eaffffffba00000000a9ffffffff440000000000000000004dfffffffffb120000000000000000000000000000000000000095ffffffff6500000000000efffffffff20000000000000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff270000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd300000065ffffffffff1f00000000000000000000000010dcfffff42c00000000000000003dffffffffff40000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000000000000034ffffffffff2000000000000000000000000000000000000000000023ffffffffff69000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e000000000000000000000000fcffffff87a6fffffffee3d5f2ffffffffffa2002bf6fffffffdded2e9ffffffffffffd2070000000000000000001df8fffffff62d000000000000000000000000000000000000000000000000000000000000001dfbfffffff612000000000062ffffffff4b0000000000000000000000000000000000001cffffffe80000000000000000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff980200000000000019fbfffffff00a000000000000000000000000009fffffffff3800000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000005d3ffffffff9f000000000000000000000000000000000000015addfffffffffffffffff696170018fdffffff350000000000007bffffffffe710000000000000000012e7fffffff424000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffda0d0000000000007effffffb5000000003afbffffff620000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffff4d0000000000000000000097fffffffb1400000af4ffffffea0300000000000000000009f6ffffffff5f0000000000000000000000000000000000000017f4ffffffe207000000002fffffffffd30000000000000000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff460000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000004bffffffffff35000000000000000000000000002df5ffffdb100000000000000058ffffffffff1d000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff95000000000000000034ffffffffff200000000000000000000000000000000000000000005fffffffffff2d0000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000fcffffff6704a1ffffffffffffffffffffdf12000043f4ffffffffffffffffffffffe1260000000000000000000095ffffffff7000000000000000000000000000000000000000000000000000000000000000008affffffff9b00000000000009eeffffffba0000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000007dffffffff97000000000000000000000000000039ffffffffa000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000016a7f4ea84060000000000000000000000000000000000000000013b7ea9c1c7ba965a1000000079ffffffdd0100000000002ef9ffffffff55000000000000000000004fffffffffc6030000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffff590000000000000006e4fffff90b0000000074fffffff62d0000000000000000000000000000000000000000000000000000000000000000000000000000adfffffffff60a000000000000000000003fffffffff67000055ffffffff960000000000000000000000b3ffffffffaf000000000000000000000000000000000000000084ffffffff6e000000004effffffffb4000000000000000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff5300000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000028ffffffffff6c000000000000000000000000000058ffffffb40100000000000095fffffffff1010000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000034ffffffffff20000000000000000000000000000000000000000000b1ffffffffdc000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000fcffffff4a000062f3ffffffffffffffd4220000000026c2ffffffffffffffffffb31a0000000000000000000002e9ffffffe504000000000000000000000000000000000000000000000000000000000000000befffffffff2e000000000000008dffffffff2a00000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000002e1ffffffff32000000000000000000000000000000d3fffffff611000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7ffffff7b000000000005cfffffffffb3000000000000000000000000a7ffffffff7a0000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dafffffc0d000000000000000099ffffff420000000001b2ffffffd80c00000000000000000000000000000000000000000000000000000000000000000000000008f4ffffffffb3000000000000000000000002e5ffffffbd0000abffffffff3f000000000000000000000066fffffffff60a000000000000000000000000000000000000000eecffffffe80a0000006effffffff940000000000000000000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000003f2ffffffffae0000000000000000000000000000008fffffff80000000000000d5ffffffffb5000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe403000000000000000034ffffffffff20000000000000000000000000000000000000000024fdffffffff8300000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000fcffffd30c000000157bc5eefbecbe6908000000000000003d94cdf0fae9ce8d3800000000000000000000000033ffffffff8200000000000000000000000000000000000000000000000000000000000000006cffffffffc0000000000000000024feffffff9800000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f17000000000000000000004dfffffffb8f0000000000000000000000000000000042eeffffff6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008afffffff416000000000082ffffffffd91a00000000000000000000000010c7fffffffa3100000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2ffffe300000000000000000070ffffff5b000000000011e0ffffffa50000000000000000000000000000000000000000000000000000000000000000000000004effffffffff6700000000000000000000000090fffffffc170bf5ffffffe602000000000000000000000019feffffffff51000000000000000000000000000000000000000073ffffffff770000008effffffff75000000000000000000000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5a00000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000000baffffffffee07000000000000000000000000000004bffffffe4d0000000029ffffffffff6e000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000034ffffffffff20000000000000000000000000000000000000000095fffffffff919000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054ffffffff4b0000000000000000000000000000000000000000000000000000000000000002dbffffffff53000000000000000000b9fffffff512000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b62a6d1eefbf4dfc995521000000000000000000000000000000000000000000009b62f0000000000004dfeffffff85000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feffffd800000000000000000064ffffff6a00000000000037faffffff6600000000000000000000000000000000000000000000000000000000000000000000009effffffffff1b00000000000000000000000038ffffffff6956ffffffff9100000000000000000000000000cbffffffffa1000000000000000000000000000000000000000007e2ffffffed0e0000aeffffffff560000000000000000000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4e0000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000006bffffffffff6800000000000000000000000000000016e3fffff0250000009cfffffffffc1600000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000034ffffffffff20000000000000000000000000000000000000003afcffffffff9500000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069ffffffff2f000000000000000000000000000000000000000000000000000000000000004effffffffe2030000000000000000004effffffff76000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018f6fffff4ae1200000000000000000000000000000000000000000000000357c9fffffffffffffffffffffff79621000000000000000000000000000000000000007efff86f0000000026efffffffe00e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffe500000000000000000072ffffff5b0000000000000070fffffff73000000000000000000000000000000000000000000000000000000000000000000003ebffffffffcd0000000000000000000000000000deffffffb7a9ffffffff3a000000000000000000000000007effffffffee04000000000000000000000000000000000000000061ffffffff800000ceffffffff370000000000000000000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff33000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff6100000000000016f9ffffffffdf0400000000000000000000000000000036f8ffffd40b001ff8ffffffffaa000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000034ffffffffff200000000000000000000000000000000000000fdfffffffffef140000000000000000000000000000000067ffffffff9d0021feffffffe0020000000000000000000000000000000000000063fffbcb2f000000000000000000000000000000000000000064ffff9c00000000000000000000005bffffffff3f0000000000000000000016bcbb8b5b06000000000000000000000000000000beffffffff780000000000000000000002e0ffffffe2030000000000000000000000000000001cffffffe80000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000126bb2e0f8fae9cc934a02000000000000000000000000008effffffffba0000000000000000000000000000000000000000000054dcfffffffffffffffffffffffffffffffb7b020000000000000000000000000000000000aeffffffb515003decfffffffd3d00000000000000000000000000000000054a73714502000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8fffffe110000000000000000a0ffffff430000000000000000aeffffffda0d000000000000000000000000000000000000000000000000000000000000000040ffffffffff80000000000000000000000000000088fffffff3edffffffe2010000000000000000000000000031ffffffffff43000000000000000000000000000000000000000003d5fffffff21100eeffffffff170000000000000000000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008affffffffff100000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb00000000000000000a0ffffffffff820000000000000000000000000000000065ffffffaa03c3fffffffffe2f0000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb0000000000000000000000034ffffffffff20000000000000000000000000000000000012c4ffffffffff5600000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000001c7ffffe4100000000000000000000000000000000000000064ffff9c00000000000000000000003bffffffff7e0000000000000000000084fffffffa0500000000000000000000000000002ffffffffff713000000000000000000000079ffffffff5400000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000a7ff5ffffffffffffffffffde5400000000000000000000000016f5ffffffff440000000000000000000000000000000000000000a3ffffffffffffffffead6d3e7fdffffffffffffba0e0000000000000000000000000000000014b4ffffffe784f9ffffffff6c000000000000000000000000000000000093ffffffff77000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009fffffff620000000000000009ebfffffb0c000000000000000010deffffffa9000000000000000000000000000000000000000000000000000000000000000090ffffffffff33000000000000000000000000000031ffffffffffffffff8c000000000000000000000000000000e3ffffffff9300000000000000000000000000000000000000000050ffffffff760dfffffffff7010000000000000000000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffdb0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd712000000000000000026fafffffffffe4c000000000000000000000000000000009bffffffc9ffffffffff9b0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd712000000000000000000000034ffffffffff200000000000000000000000000000000023d8ffffffffff920000000000000000000000000000000000000098ffffffff46d2fffffffb1800000000000000000000000000000000000000000031fcffff930000000000000000000000000000000000000064ffff9c000000000000000000000004efffffffe80d000000000000000016ebffffffc8000000000000000000000000000000a0ffffffff9d00000000000000000000000015f9ffffffc300000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000033e0ffffffffffffffffffffffffff9d0200000000000000000000008affffffffc400000000000000000000000000000000000000007dffffffffffcc681c000000001257c5ffffffffffbb05000000000000000000000000000000000065f3ffffffffffffff820000000000000000000000000000000000008affffffff6e000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffe11200000000000089ffffffbc0000000000000000000033f9ffffff6a00000000000000000000000000000000000000000000000000000000000000e0ffffffffe501000000000000000000000000000000d8ffffffffffffff3500000000000000000000000000000097ffffffffe300000000000000000000000000000000000000000000c7ffffffe02fffffffffd8000000000000000000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff9e000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000000008cfffffffffff24b00000000000000000000000000000007c9ffffffffffffffe311000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe02000000000000000000000000034ffffffffff200000000000000000000000000000118bf8ffffffffffa9020000000000000000000000000000000000000030ffffffffb1ffffffffac000000000000000000000000000000000000000000000095fffffc3100000000000000000000000000000000000064ffff9c00000000000000000000000094ffffffffb60a00000000000007c1ffffffff68000000000000000000000000000018f9ffffffff2f00000000000000000000000000a5ffffffff33000000000000000000054785b8daf1fbf5e1cc9c57130000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080036f6fffffffffffee0d0defeffffffffff97000000000000000000000014f3ffffffff440000000000000000000000000000000000000003c2ffffcf460000000000000000000059f5ffffffff9b000000000000000000000000000000000654cbfffffffffffe71000000000000000000000000000000000000007dffffffff62000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ddffffffd43f0100001a96ffffffff4700000000000000000000006cfffffff832000000000000000000000000000000000000000000000000000000000031ffffffffff990000000000000000000000000000000081ffffffffffffde000000000000000000000000000000004affffffffff340000000000000000000000000000000000000000003fffffffff8bffffffffb90000000000000000000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4e000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000000000009d4fffffffffffd7803000000000000000000000000000037fffffffffffff83600000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b0000000000000000000000000034ffffffffff200000000000000000000000124d9bf0ffffffffffff9803000000000000000000000000000000000000000000c9ffffffffffffffff44000000000000000000000000000000000000000000000010e9ffffc601000000000000000000000000000000000064ffff9c00000000000000000000000016f1ffffffffd6550900000449d1ffffffffd706000000000000000000000000000082ffffffffc200000000000000000000000000003affffffffa100000000000000188deffffffffffffffffffffffff8951d000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080009deffffffdc6812000000147df8ffffffff46000000000000000000000086ffffffffc400000000000000000000000000000000000000000f77570200000000000000000000000038f7ffffffff3b0000000000000000000000000e549eecffffffffffffffffa41000000000000000000000000000000000000070ffffffff560000000000000000000000000099ccccccccccccccccccccfdfffff9cccccccccccccccccccc850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffffffeed2deffffffffffaf00000000000000000000000000aaffffffdd0f0000000000000000000000000000000000000000000000000000000082ffffffffff4c0000000000000000000000000000000029ffffffffffff870000000000000000000000000000000008f5ffffffff8500000000000000000000000000000000000000000000b6fffffff3ffffffffedcccccccccccccccccccccccccccccccccccccccc2f0000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffec0700000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000028edffffffffffffd85a02000000000000000000001279f3fffffffffff94d000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a000000000000000000000000000034ffffffffffd2cccccccccccccccccdd8edfffffffffffffffff360000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000000000000000060ffffff620000000000000000affeffffffffffffffffffffffffff7c0000000000000000000049fbfffffffffff8dad4f1fffffffffff233000000000000000000000000000008eaffffffff54000000000000000000000000000000cffffffff917000000001091f7fffffffffffffffffffffffffffffff8650000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000041f8f57c06000000000000003efaffffffc5000000000000000000000012f1ffffffff4400000000000000000000000000000000000000000000000000000000000000000000000068ffffffffca000000000000000000000088fafffffffffffffffdd5ffffffe546000000000000000000000000000000000063ffffffff4900000000000000000000000000bfffffffffffffffffffffffffffffffffffffffffffffffffa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ffffffffffffffffffffffce0f000000000000000000000000000edbffffffad00000000000000000000000000000000000000000000000000000000d3fffffffff6090000000000000000000000000000000000d2ffffffffff300000000000000000000000000000000000b0ffffffffd6000000000000000000000000000000000000000000002ffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c0000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff820000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000000000000003af2ffffffffffffffe8a45d341f090a1a366cabf8ffffffffffffffa900000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e0000000000000000000000000000000034fffffffffffffffffffffffffffffffffffffffffffffffda11a0000000000000000000000000000000000000000000000000af0ffffffffffff760000000000000000000000000000000000000000000000000001c4ffffea110000000000000fffffffffffffffffffffffffffffff9c000000000000000000000051f1ffffffffffffffffffffffffe83c00000000000000000000000000000064fffffffdad020000000000000000000000000000003becffffff7f00000035defffffffffffffffee9d7d3e5feffffffffffff9800000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000d0e0000000000000000000096fffffffe1c000000000000000000000083ffffffffc400000000000000000000000000000000000000000000000000000000000000000000000002d9ffffffff3e00000000000000000009fffffffffffffffdab290172f9fffffb1a0000000000000000000000000000000056ffffffff3d000000000000000000000000009bffffffffffffffffffffffffffffffffffffffffffffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057e9fffffffffffffffda00b00000000000000000000000000000030f7ffffff6e000000000000000000000000000000000000000000000000000023ffffffffffb100000000000000000000000000000000000078ffffffffd800000000000000000000000000000000000061ffffffffff2700000000000000000000000000000000000000000000a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffef13000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000000000000000031e6fffffffffffffffffffffffffffffffffffffffffffffffffffd3500000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000034ffffffffffffffffffffffffffffffffffffffffffe58d2100000000000000000000000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000000002ffcffff9600000000000015efffff8728282828287cffffab28281800000000000000000000000023acfefffffffffffffffffca3160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f9ffffffffffffbb5715000000001357c5ffffffffff7c000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000048ffffffff47000000000000000000000010f0ffffffff440000000000000000000000000000000000000000000000000000000000000000000000006fffffffff9300000000000000000000e1ffffffffda7e1d0000000031d8ffe4060000000000000000000000000000000049ffffffff31000000000000000000000000001cc1f7f0dec1a17d593a1efaffffe724456687a8cae7f5f6b8130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e4f9edcf8b2d00000000000000000000000000000000000052ebfffff9350000000000000000000000000000000000000000000000000074ffffffffda2f0000000000000000000000000000000000000db8fcffe44500000000000000000000000000000000000008affbffffff770000000000000000000000000000000000000000000022faffffffffffffffffffffffffffffffffffffffffffffffffffffff3c00000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff6e0000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f0000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffdffdffffcd0300000000000000000000000000000000000000155792bcddf0faf9eedab88b500f000000000000000000000000000000000000000034fffffffffffffffffffffffffffffef4e8cba974370100000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000091fffffd3300000000000053fffff62d0000000064ffff9c00000000000000000000000000000000002777badef2f8e3bf7a2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c9ffffffffcb380000000000000000000063f9fffffffe400000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000000000000003affffffff5f0000000000000000000000007fffffffffc40000000000000000000000000000000000000000000000000000000000000000000000002affffffffd20000000000000000000090dda86d2400000000000000000b9c5100000000000000000000000000000000003dffffffff24000000000000000000000000000000000000000000000008fffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffbd020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054ddfffffffffffffffffffffffffffffffffff57a0799ffffff6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ee7ffffc90100000000000095ffffd90d00000064ffff9c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032fcfffd820400000000000000000000000058ffffffffc70000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000064ffffffff540000000000000000000000000eeeffffffff44000000000000000000000000000000000000000000000000000000000000000000000000f8fffffff80200000000000000000001000000000000000000000000000000000000000000000000000000000000000030ffffffff18000000000000000000000000000000000000000000000016fffffffe0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffe0180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000357bdfcffffffffffffffffffffffffdc7817000011eafffff11a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffff6500000000000007cfffffa700000064ffff9c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ae41000000000000000000000000000000b0ffffffff4100000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000bdaffffffff37000000000000000000000000007bffffffffc4000000000000000000000000000000000000000000000000000000000000000000000000e5ffffffff1100000000000000000000000000000000000000000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009437aaacbe6f3fdfaf1e1c6a4753f050000000000000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc80000000000000000000000000000000004437db0d7e9f8f7e7d4aa783b010000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe82800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175893bcddf0faf5e3d1aa6f3401000000000060ffffffa9000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffec1300000000000026f3ffff69000064ffff9c000000000024ffffffffffffffffffffffffffffffffffffffffffffffffffff280000000000000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000000000000000000000000000000000000000000000044ffffffff9000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000000000019c4ffffffffe603000000000000000000000000000decffffffff440000000000000000000000000000000000000000000000000000000000000000000000e0ffffffff1600000000000000000000000000000000000000000000000000000000000000000000000000000000000016fffffffe01000000000000000000000000000000000000000000000031ffffffff1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000352aff5fffffffffffffffffffffffffffff2a73d000000000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000000000000002a97ebffffffffffffffffffffffffe48d1f00000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffda2200000000000000000000000000000000000000000000000000000035c7fbffffd217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffff47000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff9800000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000000000000000000000000000000002cfbffff99000000000000005bfffff8320064ffff9c000000000021ffffffffffffffffffffffffffffffffffffffffffffffffffff2800000885c6100000000000000000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000000000005fbffffffd800000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000d78eeffffffffff7300000000000000000000000000000078ffffffffc40000000000000000000000000000000000000000000000000000000000000000000000f3fffffffe04000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000009fffffff30000000000000000000000000000000000000000000000003effffffff26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056be2ffffffffffffffffffffffffffffffffffffffffcf6304000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000000000027abfefffff9ba85553f2f2e3b5983c0f9fffffa9d1b00000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000000000000000000000000000000172faffffffcd13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ac8fcffdc0800000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff3100000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000000000000000000000000000000020ddfffffff35c000000000000000000000000000000000000000000000000000000000000008efffffd36000000000000009effffdd0f63ffff9c000000000003f3ffffffffffffffffffffffffffffffffffffffffffffffffff28000077ffffca0e000000000000000000000084ffffffffff7a000000a6ffffffffff5600000000000000000000000000000000000000000000000000000000e5fffffffb01000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000d7deeffffffffffffbc030000000000000000000000000000000beaffffffff4400000000000000000000000000000000000000000000000000000000000000000025ffffffffec00000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000b8dc4c2b4987959381700fbffffe7011a3b5c7c9bb6c3c28506000000000000000000000000004cffffffff33000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041dafffffffffffffffffee8d7cfd6e4f2feffffffffffffffffd0350000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc8000000000000000000000376f7ffffcf6010000000000000000000001169e0fffff1660000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffd34600000000000000000000000000000000000000000000000000000014b4ffffffffc60f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc90000000000000000000000000000000000000000000000001bd9ffffffff9f0b00000000000000000000000000000000000000000000000000000000000de6ffffcb020000000000000ad5ffffae5dffff9c0000000000006fffffffffffffffffffffffffffffffffffffffffffffffffff1a000018e8ffffa7000000000000000000000080ffffffffff75000000a2ffffffffff5100000000000000000000000000000000000000000000000000000000f0ffffffff14000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000000000000000473ebffffffffffffffb40a000000000000000000000000000000000074ffffffffc40000000000000000000000000000000000000000000000000000000000000000006fffffffffb500000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000088fffffffffffffffffff5fefffffcf7ffffffffffffffffff71000000000000000000000000005affffffff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048efeffffffffffeea6632f07000000000000032a5a8bcafffffffffffd8d00000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000011beffffde4e0000000000000000000000000000000771ecffffad0a0000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000253bafcfffffffffffffffffffffffff9b34b010000000000000000000000000000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff62000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000005affffff68000000000000002bf6ffffbaffff9c000000000000007afffffffffc94aad6eefffffffffffffffffffffffffff893000000004bffffff550000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000000000000000000000000000000000000000001effffffffff1b000000acfffffffffffffffffffffff7e6d5ba83490d00000000000000000000e4ffffffff080000000000000ec1ffffffffffffffed6b0100000000000000000000000000000000000009e7ffffffff440000000000000000000000000000000000000000000000000000000000000006e0ffffffff6e00000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c00000000bdffffffffffffffffffffffffffffffffffffffffffffffffa50000000000000000000000000067ffffffff4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb9ffffffffffc355050000000000000000000000000000002076d9ffffffaf00000000000038ffffffff740000000000000000000000000002465f380000000000000000000000000000e4ffffffc8000000000000000022d9ffff980b00000000000000000000000000000000000012baffffcb170000000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000000000000000155792bcddf0faf9eedab88d521000000000000000000000000000000000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000000000000000000000000000000013cefffffffff76a0000000000000000000000000000000000000000000000000000000000beffffed140000000000000065ffffffffff9c000000000000000078ffffffffe62800000000000000000000000000000000000000000000b8ffffe507000000000000000000003bc7f1be31000000000051d1f0b4230000000000000000000000000000000000000000000000000000000093fffffffffe05000000acfffffffffffffffffffffffffffffffffff395290000000000000000e4ffffffff08000000000000b5fffffffffffff1821000000000000000000000000000000000000000000070ffffffffc4000000000000000000000000000000000000000000000000000000000000009bfffffffff41600000038ffffffffff240000000000000000000000000000000000000000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffa80000000000000000000000000075ffffffff59000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc5ffffffffdb4800000000000000000000000000000000000000000258d3ff4300000000000038ffffffff7400000000000000000000000000a1ffffff7100000000000000000000000000e4ffffffc80000000000000018defffc6b000000000000000000000000000000000000000000038fffffcf0e0000000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001abfffffffffffaf0700000000000000000000000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000029faffff9c0000000000000000a6ffffffff9c00000000000000000076ffffffffe72900000000000000000000000000000000000000000051ffffff5b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063ffffffffffe100000000acfffffffffffffffffffffffffffffffffffffffd8c07000000000000e4ffffffff0800000000003cfffffffffffe9612000000000000000000000000000000000000000000000008e5ffffffff44000000000000000000000000000000000000000000000000000000000aa1ffffffffff880000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000083ffffffff6600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7ffffffff9909000000000000000000000000000000000000000000000000160000000000000038ffffffff7400000000000000000000000043fffffffff61b000000000000000000000000e4ffffffc80000000000000bd0fffe5c00000000000000044389a7bfc7bb9d6d28000000000000007bffffbf04000000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000000000000000000000000000000000000000000000065c7d808080805f000000000000000000000000000000000000000000000000000000008bfffffe38000000000000000ddbffffff9c0000000000000000000074ffffffffe82a000000000000000000000000000000000000000013ffffffaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169dffffffffffff9000000000acffffffffedccccccccccccd5e7fcffffffffffffffd41a0000000000e4ffffffff08000000000079fffffffffe5600000000000000000000000000000000000000000000000000006dffffffffc500000000000000000000000000004591dbe4914e1600000000012f7ce9ffffffffffd00b0000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000090ffffffff730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ffffffffe6f0000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000002d0ffffffffff9d000000000000000000000000e4ffffffc800000000000099ffff7b0000000000000a7deeffffffffffffffffffc537000000000000a4ffff8000000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcffffffffffffffffffff7400000ce4ffffce020000000000000031f8ffff9c000000000000000000000072ffffffffe92c0000000000000000000000000000000000000000f6ffffdc0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000000000000000003595f5fffffffffffffa2a00000000acffffffffa400000000000000000d48a2faffffffffffd41200000000e4ffffffff0800000000008cffffffffb100000000000000000000000000000000000000000000000000000007e3ffffffff4500000000000000000000000000dbfffffffffffff0d9d0dff3ffffffffffffffe31e000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000004dcaf2f0c43d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032fcffffff6d000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000061fffffffffffffd2d0000000000000000000000e4ffffffc8000000000049ffffbc0100000000003ae4fffffffffffffffffffffffffe99050000000008cbfffc35000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d00000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcffffffffffffffffffff7400000057ffffff6b00000000000000000000000000000000000000000000000071ffffffffea2d0000000000000000000000000000000000000afefffff10000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000000000044292e1ffffffffffffffffff860000000000acffffffffa4000000000000000000000021c7ffffffffffb300000000e4ffffffff0800000000006dffffffff960000000000000000000000000000000000000000000000000000000069ffffffffc500000000000000000000000000aeffffffffffffffffffffffffffffffffffbd1500000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c8ffffff9800000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000ae5ffffffffffffffb60000000000000000000000e4ffffffc80000000002d5fff41e000000000052f7ffffffffffffffffffffffffffffffb3080000000035feffbf0000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed0800000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc0000000000000000003a505050c9ffffea5050502400000000bbffffef160000000000000000000000000000000000000000000000006fffffffffeb2e000000000000000000000000000000000046ffffffeb0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000003291eaffffffffffffffffffffffa6020000000000acffffffffa400000000000000000000000005b9ffffffffff47000000e4ffffffff08000000000019f8ffffffe61100000000000000000000000000000000000000000000000000000006e0ffffffff4500000000000000000000000081ffffffffffffffffffffffffffffffd45a020000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004fffffffda0800000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000007fffffffffcbffffffff4200000000000000000000e4ffffffc8000000005bffff8a000000000033f9ffffffffe67d3412020c2b6fd0ffffffe31c0000000000a9ffff43000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000000000000000000000b0ffffe0000000000000000027f9ffff9f000000000000000000000000000000000000000000000000006effffffffec3000000000000000000000000000000000adffffffcc0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000157d2fffffffffffffffffffffffffc8003000000000000acffffffffa4000000000000000000000000000fe7ffffffffc4000000e4ffffffff080000000000006fffffffffcc1900000000000000000000000000000000000000000000000000000065ffffffffc500000000000000000000000054ffffffeb7ba4cbe2f0fbecd8bc7d390100000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c7ffffff460000000000000469c0ecf9e1bb6610000000000b72cbedfae2ae5b0500000000000000000038ffffffff7400000000000000000019f4ffffffe823fcffffffcd01000000000000000000e4ffffffc800000000c7fff715000000000bddffffffff980b00000000000000015fedeb2800000000000022fcffaf000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff280000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb23000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff28000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000000000000000000000b0ffffe000000000000000000088fffffe3a000000000000000000000000000000000000000000000000006cffffffffed31000000000000000000000000000026ffffffff910000acffffffffa40000000000000000000000000000000000000000000000000000000000001dc3fffffffffffffffffffffffffeb12e0000000000000000acffffffffa400000000000000000000000000006ffffffffffd170000e4ffffffff080000000000000081ffffffffe84e000000000000000000000000000000000000000000000000000004deffffffff45000000000000000000000027fffffffb05000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffc300000000000015ccffffffffffffffef61000014d8ffffffffffffffdb3f000000000000000038ffffffff740000000000000000009dffffffff7700a4ffffffff5b000000000000000000e4ffffffc800000023ffffab000000000075ffffffff8c000000000000000000000011170000000000000000b4fff910000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe82800000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc40000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf00000000000000008fccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaf00000000000000000000000000b0ffffe00000000000000000000be2ffffd003000000000000000000000000000000000000000000000000006afeffffffee330000000000000000000000000014d3ffffff370000acffffffffa4000000000000000000000000000000000000000000000000000000000028eaffffffffffffffffffffffe3832200000000000000000000acffffffffa4000000000000000000000000000016feffffffff5f0000e4ffffffff08000000000000000051f0ffffffff9c070000000000000000000000000000000000000000000000000062ffffffffc5000000000000000000000003f7ffffff2c000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000087ffffff51000000000002c3ffffffffffffffffffff89009bfffffffffffffffffffe7c0000000000000038ffffffff7400000000000000002efdffffffe60c0025faffffffe0070000000000000000e4ffffffc800000075ffff530000000007e7ffffffcb040000000000000000000000000000000000000000005bffff5c000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe0180000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff580000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000000053ffffff6e000000000000000000000000000000000000000000000000000068feffffffef33000000000000000000000000000143a9b7000000acffffffffa40000000000000000000000000000000000000000000000000000000010e1ffffffffffffffffffec9c4703000000000000000000000000acffffffffa4000000000000000000000000000000d7ffffffff800000e4ffffffff0800000000000000000022cbffffffffc81a00000000000000000000000000000000000000000000000004dbffffffff450000000000000000000000cdffffff58000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffed06000000000058fffffffc7b1a052170eaffff78f4ffffc13409185ad4ffffff7c00000000000038ffffffff740000000000000000bbffffffff6100000093ffffffff730000000000000000e4ffffffc8000000acffff150000000047ffffffff4c0000000000000000000000000000000000000000000019ffff9400000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000000000b8fffff017000000000000000000000000000000000000000000000000000066feffffffee3000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000000000000091fffffffffffffff6a34504000000000000000000000000000000acffffffffa4000000000000000000000000000000beffffffff980000e2ffffffff0c000000000000000000000695ffffffffd7100000000000000000000000000000000000000000000000005effffffffc50000000000000000000000a0ffffff83000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffdffffa8000000000000b6ffffff85000000000018d4fffffffff2140000000009a8ffffff46000000000038ffffffff74000000000000004affffffffce0200000013f0ffffffee1100000000000000e4ffffffc8000000e0ffe200000000008affffffe9010000000000000000000000000000000000000000000000e7ffca00000000000000000015f9fffffffa1600000000000000000000000095ffffffff8900000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff8900000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000097fff7b4160000000000000000000000004cffffffffffffffffffffffffffc00000000000000000000000000000b0ffffe0000000000000000000000025f8ffffa200000000000000000000000000000000000000000000000000000066feffffffec2d000000000000000000000000000000000000acffffffffedccccccccccccc3b3a28751180000000000000000000000000000000ef9fffffffffff98714000000000000000000000000000000000000acffffffffa4000000000000000000000000000000b8ffffffff9f0000d0ffffffff1e0000000000000000000000008fffffffff9d00000000000000000000000000000000000000000000000003d8ffffffff450000000000000000000073ffffffaf000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040ffffff6c000000000000eefffffc1100000000000021f2ffffffc000000000000005c1ffffe10d0000000038ffffffff7400000000000003d5ffffffff3f000000000075ffffffff8c00000000000000e4ffffffc8000001fdffbf0000000000c2ffffffaa000000000000000000000000000000000000000000000000c1ffe900000000000000000000a7ffffffff7600000000000000000000000af0fffffffe23000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed1100000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe2300000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000011ebffffbc0000000000000000000000003affffffffffffffffffffffffffc00000000000000000000000000000b0ffffe000000000000000000000000085ffffff3d0000000000000000000000000000000000000000000000000000006bffffffffea290000000000000000000000000000000000acffffffffffffffffffffffffffffffffffd1670b00000000000000000000000059ffffffffffe3300000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000cdffffffff880000b9ffffffff3900000000000000000000000003d1fffffffd190000000000000000000000000000000000000000000000005affffffffc50000000000000000000046ffffffdb000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffff3f000000000008ffffffe000000000000000007dffffffbc0000000000000025fbffff720000000038ffffffff7400000000000067ffffffffae00000000000007dffffffff81f000000000000e4ffffffc8000010ffffaf0000000000daffffff83000000000000000000000000000000000000000000000000b0fffa0000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc40000000000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000000000063ffffff5b000000000000000000000001b9ffffffffffffffffffffffffba0000000000000000000000000000b0ffffe000000000000000000000000009e0ffffd2040000000000000000000000000000000000000000000000000000007cffffffffe11900000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffee6200000000000000000000008bfffffffff627000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000008f7ffffffff6f000093ffffffff75000000000000000000000000006effffffff5c00000000000000000000000000000000000000000000000002d5ffffffff4500000000000000000019fffffffd090000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084ffffff1d00000000000bffffffcf000000000000000010f9ffffd400000000000000009fffffde0200000038ffffffff7400000000000de9fffffff9230000000000000058ffffffffa4000000000000e4ffffffc800001bffffa30000000000eeffffff70000000000000000000000000000000000000000000000000a8ffff0700000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe90500000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff58000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000001c7ffffe70e00000000000000000000000abcfffff69dbacbccccccccc74f0000000000000000000000000000b0ffffe00000000000000000000000000050ffffff710000000000000000000000000000000000000000000000000000000097ffffffffcc07000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffb30c000000000000000000a2ffffffff9200000000000000000000000000000000000000000000acffffffffa400000000000000000000000000004dffffffffff3100004affffffffc8000000000000000000000000004fffffffff740000000000000000000000000000000000000000000000000057ffffffffc500000000000000000000ecffffff320000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093ffffff08000000000000f3ffffe6000000000000000000b3fffffb090000000000000041ffffff3f00000038ffffffff74000000000085ffffffff8b000000000000000000c8fffffffe320000000000e4ffffffc800000effffac0000000000edffffff71000000000000000000000000000000000000000000000000b6fff9000000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe70400000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe7040000000000000000000000000000000031fcffff9000000000000000000000000008b8ffffc70f000000000000000000000000000000000010000000b0ffffe00000000000000000000000000000b5fffff21900000000000000000000000000000000000000000000000000000004bfffffffff91000000000000000000000000000000acffffffffa4000000000000091a3d79d0ffffffffffffbe080000000000000000adffffffff5700000000000000000000000000000000000000000000acffffffffa40000000000000000000000000001cbffffffffe500000008f1ffffffff410000000000000000000000006fffffffff620000000000000000000000000000000000000000000000000001d1ffffffff45000000000000000000bfffffff5e0000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffd00000000000000d2fffffe16000000000000000069ffffff3e0000000000000002f4ffff7e00000038ffffffff74000000001df6ffffffeb0f0000000000000000003bffffffffbd0000000000e4ffffffc8000001fcffc00000000000d6ffffff84000000000000000000000000000000000000000000000000c8ffe8000000000000000000000011f7fffffff914000000000000000090ffffffff84000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a0000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000095fffffc2e00000000000000000000000007b3ffffcb110000000000000000000000000000004bfccb1f00b0ffffe0000000000000000000000000000023f7ffffa5000000000000000000000000000000000000000000000000000000001beeffffffff3b0000000000000000000000000000acffffffffa4000000000000000000000047e1ffffffffffa0000000000000000097ffffffff4800000000000000000000000000000000000000000000acffffffffa40000000000000000000000000088ffffffffff7b000000007dffffffffe0120000000000000000000002d0ffffffff29000000000000000000000000000000000000000000000000000042ffffffffc500000000000000000092ffffff890000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dfffffc000000000000008cffffff60000000000000000024ffffff810000000000000000c4ffffbc00000038ffffffff7400000000a3ffffffff690000000000000000000000adffffffff4900000000e4ffffffc8000000deffe50000000000bdffffffb0000000000000000000000000000000000000000000000001f0ffc8000000000000000000000000a2ffffffff730000000000000008edfffffffd1f000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f00000000000000000000000000000000000010e9ffffc30100000000000000000000000005aeffffcf14000000000000000000000000000ae8ffffea3fabffffe000000000000000000000000000000081ffffff400000000000000000000000000000000000000000000000000000000064ffffffffce0100000000000000000000000000acffffffffa400000000000000000000000011cefffffffffe390000000000000072ffffffff6900000000000000000000000000000000000000000000acffffffffa400000000000000000000000a97ffffffffffe409000000000be4ffffffffd42200000000000000000497ffffffffc80000000000000000000000000000000000000000000000000000000092ffffffff40000000000000000065fffffffffffffffffffffffffffffffff2c02b0000000038ffffffffffd3cccccccccccccccccccccccccccc5f00000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008effffff070000000000003effffffcd000000000000000000dfffffc700000000000000009fffffdb00000038ffffffff7400000033feffffffd403000000000000000000000024faffffffd202000000e4ffffffc8000000aaffff1a0000000081ffffffee040000000000000000000000000000000000000000000026ffff920000000000000000000000003bffffffffd8000000000000005bffffffffb600000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb0000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000000000000000000061ffffff5f0000000000000000000000000004a9ffffd316000000000000000000000000005ff9fffffbdeffffe000000000000000000000000000000008ddffffd40500000000000000000000000000000000000000000000000000000003d6ffffffff4800000000000000000000000000acffffffffa40000000000000000000000000019efffffffffbd0000000000000026ffffffffba00000000000000000000000000000000000000000000acffffffffa40000000000000000073783e8fffffffffff63d00000000000036f6fffffffff69034020000000f57cdfffffffffe3b00000000000000a9feffffffffffffffffffffffffffffffffffffffffffffffffa2000000000000000039ffffffffffffffffffffffffffffffffffffc00000000038ffffffffff24000000000000000000000000000000000000000000000099ccccccccccccccccccccfdfffff9cccccccccccccccccccc850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dffffff2000000000000000c8ffffff5700000000000000009bfffffc100000000000000090ffffee00000038ffffffff74000000c0ffffffff470000000000000000000000000090ffffffff62000000e4ffffffc800000072ffff5c0000000037ffffffff5a000000000000000000000000000000000000000000006bffff5900000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e00000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff58000000000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e00000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e000000000000000000000000000000000000000001c4ffffe9100000000000000000000000000003a7ffffd618000000000000000000000000003feeffffffffffe0000000000000000000000000000000004cffffff74000000000000000000000000000000000000000000000000000000006bffffffffb100000000000000000000000000acffffffffa4000000000000000000000000000078fffffffffc1400000000000000c8ffffffff4b0000000000000000000000003bb770000000000000acffffffffedccccccccccccd5e5fafffffffffffffff64b00000000000000004ff6fffffffffffff4ddd1e0fdffffffffffff720000000000000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffca00000000000000000dfeffffffffffffffffffffffffffffffffffe30000000038ffffffffff240000000000000000000000000000000000000000000000bfffffffffffffffffffffffffffffffffffffffffffffffffa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffff440000000000000044ffffffef210000000000000056ffffff510000000000000087fffffe00000038ffffffff74000050ffffffffb5000000000000000000000000000012eeffffffe4090000e4ffffffc800000020feffb40000000002d7ffffffd80a000000000000000000000000000000000000000000c4fff80f000000000000000000000000006cffffffffa4000000000027ffffffffe30300000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe3030000000000000000000000000000000000000000002ffcffff93000000000000000000000000000005b6ffffd50f0000000000000000000000000026dcffffffffe00000000000000000000000000000000000b3fffff31b00000000000000000000000000000000000000000000000000000014fefffffff305000000000000000000000000acffffffffa400000000000000000000000000001afeffffffff5d000000000000003ffffffffff247000000000000000000108ffdffff380000000000acffffffffffffffffffffffffffffffffffffffffc727000000000000000000002dd7fffffffffffffffffffffffffffff86b000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000dfffffffffffffffffffffffffffffffffffe40000000038ffffffffff2400000000000000000000000000000000000000000000009bffffffffffffffffffffffffffffffffffffffffffffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002affffff7a000000000000000096ffffffde2500000000000013feffff960000000000000092fffff400000038ffffffff740005d9fffffffb2900000000000000000000000000000073ffffffff7a0000e4ffffffc800000000c4fffb230000000057ffffffffa3020000000000000000000000000000000000000029feffac00000000000000000000000000000ff5fffffff712000000008cffffffff7f000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f000000000000000000000000000000000000000000000092fffffc3100000000000000000000000000000ddcffffb9030000000000000000000000000014c4ffffffe000000000000000000000000000000000001fefffffa800000000000000000000000000000000000000000000000000000000d7ffffffff32000000000000000000000000acffffffffa4000000000000000000000000000000d8ffffffff7f000000000000000097fffffffffeaa420800000003338cefffffffffbe0000000000acfffffffffffffffffffffffffffffffffffebc55030000000000000000000000000868dcfffffffffffffffffffffeaf2d00000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000001cc1f7f0dec1a17d593a1efaffffe724456687a8cae7f5f6b81300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f4ffffbc000000000000000005c3ffffffec60010000000000cdffffdb00000000000000a7ffffe300000038ffffffff74006dffffffff930000000000000000000000000000000006ddfffffff11500e4ffffffc80000000057ffffa70000000001c2ffffffffb319000000000000000032c9da1a000000000000a7ffff400000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff61000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000000000000000000000000fe8ffffc70100000000000000000000000000003affffff61000000000000000000000000000007a6ffffe000000000000000000000000000000000000037cefcff43000000000000000000000000000000000000000000000000000000b9ffffffff49000000000000000000000000acffffffffa4000000000000000000000000000000beffffffff98000000000000000004b6fffffffffffff9dfd0dcf4ffffffffffffffec1700000000acfffffffffffffffffffffff7e8d8c3915c200000000000000000000000000000000000033c7dbbd8ecfbecd9b47126000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000008fffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aefffffc1700000000000000000bb0ffffffffd0732e120829bcffffff20000000000000cbffffcb00000038ffffffff7310ecffffffef13000000000000000000000000000000000056ffffffff9300e4ffffffc80000000001d2fffe320000000017e3fffffffff5954a1d070a225ab3feffffb9010000000035fdffbd0000000000000000000000000000000036ffffffffd400000057ffffffffb100000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800000000000000000040ffffffffdb010000000000000000000060ffffffffbb0000000000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb10000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000005effffff62000000000000000000000000000000baffffe20200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028aad3f4d92a0000000000000000000000000000adffffffff55000000000000000000000000acffffffffa4000000000000000000000000000000b9ffffffff9e000000000000000000048bffffffffffffffffffffffffffffffffb2180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000016fffffffe01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffff79000000000000000000027ff6ffffffffffffffffffffffff65000000000009f9ffff9700000038ffffffff6e8bffffffff7100000000000000000000000000000000000000c6fffffffa24e0ffffffc8000000000047ffffc907000000002de0ffffffffffffffffffffffffffffffe11800000007d5fffb330000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b00000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff490000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff490000000000000000000000000000000000000000000000000000c2ffffeb11000000000000000000000000000067ffffff2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019ffffffffa60000000000000000000000000000c0ffffffff3f000000000000000000000000acffffffffa4000000000000000000000000000000ceffffffff8800000000000000000000003abafffffffffffffffffffffffbaa3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffe909000000000000000000001da0fbffffffffffffffffffffa800000000004affffff6000000038ffffffff82f8ffffffda050000000000000000000000000000000000000039ffffffffabd6ffffffc800000000000097ffff9f000000000015bbffffffffffffffffffffffffffc117000000009dffff7e00000000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000002dfbffff970000000003b9e4f05500000000005dffffff460000000000000000000019649ecfe3f3fae9d6ac6f2900000000000000000000033b697a6e541600000000000000000000ddfffffff20a00000000000000000000000003eeffffffff24000000000000000000000000acffffffffa400000000000000000000000000000bf8ffffffff6e000000000000000000000000002a72b5d6ebfbeddac5915416000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000368acce7fbf2d4a050030000000060f8ffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000031ffffffff1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081ffffff800000000000000000000000001667a7d1eefaf9edcfa15f0f0000000000a9fffffb1700000038ffffffffebffffffff4f000000000000000000000000000000000000000000aafffffffff1ffffffc80000000000000acfffff7100000000000049cbffffffffffffffffffda5700000000007effffbd030000000000000000000000000000000000000cf2ffffffee057effffffff7b00000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f0000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b0000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000008ffffffd3300000000cfffffe60c0000000099ffffff30000000000000000027a5faffffffffffffffffffffffbe4a000000000000000080fffffffffffeb830000000000000000081ffffffff770000000000000000000000004affffffffe000000000000000000000000000acffffffffa4000000000000000000000000000056ffffffffff2d00000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000001fb2ffffffffffffffffffdc44000000c1ffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000003effffffff2600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f1fffff72b00000000000000000000000000000000000000000000000000000031fdffffb40000000038ffffffffffffffffbd0000000000000000000000000000000000000000000022f9ffffffffffffffc80000000000000017dcffff7600000000000000216b9bb2c5b6a07c2f0000000000018bffffcd0d000000000000000000000000000000000000000098ffffffff46d2fffffffb1800000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb180000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000ee6ffffc9020000006dffffffbe2200046afdffffe702000000000000006ff6ffffffffffffffffffffffffffffffa9130000000000006cfffffffffffffff8530000000000000018f9fffffff7330000000000000000000009d2ffffffff8c00000000000000000000000000acffffffffa40000000000000000000000000006d7ffffffffe00000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000032eefffffffffffffffffffffffe960700e2ffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000004cffffffff330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071ffffffd50c0000000000000000000000000000000000000000000000000000c0ffffff4b0000000038fffffffffffffffd2f00000000000000000000000000000000000000000000008dffffffffffffffc8000000000000000020d7ffffa50d00000000000000000000000000000000000016b1ffffc91500000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000005bffffff6600000005ccffffffffecf9ffffffff640000000000000088fffffffffffffff1dbd2e7fdffffffffffffdf1d000000000053fffffffffffffffff72c0000000000000081ffffffffef4500000000000000000eb5fffffffff21900000000000000000000000000acffffffffa400000000000000000000000002a6ffffffffff6f000000000000000000000000000000f3ffc30600000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000027eefffffffffffff4dad0e6ffffffffb60dfcffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000005affffffff400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c6ffffffbb060000000000000000000000000000000000000000000000006bffffffc1000000000038ffffffffffffff9b00000000000000000000000000000000000000000000000011edffffffffffffc800000000000000000010bdffffe4570100000000000000000000000000000463ebffffab090000000000000000000000000000000000000000000000c9ffffffffffffffff4400000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff44000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff4400000000000000000000000000000000000000000000000000000000000000c0ffffed1300000013befffffffffffffffd7e000000000000006afffffffffff68c30000000001159caffffffffffdb160000000008464c5c96f6ffffffffb00000000000000004c8ffffffffffab4206000000186ce1ffffffffff700000000000000000000000000000acffffffffa4000000000000000000000022bfffffffffffd905000000000000000000000000000000e2ffff3600000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000001c1ffffffffffb83e030000001b72e7ffffccffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000067ffffffff4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026efffffffbb0c0000000000000000000000000000000000000000000057fdfffffa32000000000038fffffffffffff2170000000000000000000000000000000000000000000000000070ffffffffffffc8000000000000000000000375f7ffffd2620e00000000000000000000196fdefffff0640000000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe403000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc01000000000000000000000000000000000000bcffffffffffffffffffff74002bfbffff9a00000000004daae0f7f5d8972e0000000000000024f5ffffffffcc2100000000000000000067f9ffffffffa80000000000000000003bfcfffffffd120000000000000012ccfffffffffffff6dbd2e5ffffffffffffff96000000000000000000000000000000acffffffffa400000000000008183468b3fdffffffffffec2b00000000000000000000000000000000d0ffff4900000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000059ffffffffff7e000000000000000014b4ffffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000075ffffffff5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042faffffffd52b000000000000000000000000000000000000000064faffffff7300000000000038ffffffffffff79000000000000000000000000000000000000000000000000000005dbffffffffffc800000000000000000000000026a9fdfffff6bb7e573a2d32425b8fc6fdfffffa9c1b00000000000000000000000000000000000000000000000000000af0ffffffffffff760000000000000000000000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000000000000000ff5fffffff712000000008cffffffff7f0000000000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff7600000000000000000000000000000000000000bcffffffffffffffffffff7400008dfffffe3700000000000000000000000000000000000000aaffffffffd00e00000000000000000000004bfdffffffff45000000000000000000b6ffffffff4800000000000000000fa5fffffffffffffffffffffffffffffc8102000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffe6340000000000000000000000000000000000bfffff5b00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000c2ffffffffab000000000000000000000197ffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000000083ffffffff66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cfbfffffff781090000000000000000000000000000000017b2ffffffffa50100000000000038ffffffffffdf0800000000000000000000000000000000000000000000000000000053ffffffffffc800000000000000000000000000002995e9ffffffffffffffffffffffffe18c1f000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d0000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000003a505050c9ffffea5050502400000de5ffffcc02000000000000000000000000000000000028fdfffffff828000000000000000000000000008affffffffb900000000000000000081ffffffff64000000000000000000004ac5fffffffffffffffffffffeb6360000000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffa111000000000000000000000000000000000000adffff6d00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000024fffffffffd21000000000000000000000002abffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000090ffffffff7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bf5ffffffffe87817000000000000000000000000309bf5ffffffffa5030000000000000038ffffffffe9440000000000000000000000000000000000000000000000000000000000a0f9ffffffc800000000000000000000000000000000033f79add6e7f8f6e5d3a7743701000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000000000000002cffffffffffa7000000000000000000000000000000000000000000000000b0ffffe00000000000000059ffffff6900000000000000000000000000000000008fffffffff91000000000000000000000000000011f6fffffffb0f000000000000000071ffffffff720000000000000000000000002e77b1dbedfbeddaaf722700000000000000000000000000000000000000acffffffffffffffffffffffffffffffffffec8e2900000000000000000000000000000000000000009fffff7e00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000068ffffffffc0000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000000000000000004dcaf2f0c43d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d9fffffffffffcbc7b46210e03102335609bd6fffffffffffd81020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb0000000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000bdffffee1500000000000000000000000000000000dafffffff617000000000000000000000000000000b3ffffffff40000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffedcccccccccccbc3b4a5905f2a020000000000000000000000000000000000000f6ab5e7fffffffef4dcb274200000000000000000000038ffffffffff24000000000000000000000000000000000000000000009affffffff76000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a92fdffffffffffffffffffffffffffffffffffffffffdb43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a3e7fae1961e000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe0000000000000000029faffff9e000000000000000000000000000000000b69bfd3600000000000000000000000000000000088ffffffff5f000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000000000000000000000000000000000c8ff6fffffffffffffffffffffffeb22d000000000000000038ffffffffff2400000000000000000000000000000000000000000000caffffffff4b000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029aafeffffffffffffffffffffffffffffffffe774060000000000000000000000000000000000000000000000000004437db0d7e9f8f7e7d4aa783b0100000000000000000000000000000000000000001574b6e3f6faebca9b550a000000000000000000001e76b9e5f8f5dfc8954e0d000000000000000000000000000000000000000000004df7fffffffffff03d000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000008afffffe3a00000000000000000000000000000000000000000000000000000000000000000000000080ffffffff67000000000000000070ffffffff740000000000000000000001245065727c705f481400000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000000003ee2fffffffffffffffffffffffffffffffa740000000000000038ffffffffff2400000000000000000000000000000000000000000000e1ffffffff28000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002581dcfffffffffffffffffffffff5b55805000000000000000000000000000000000000000000000000002a97ebffffffffffffffffffffffffe48d1f000000000000000000000000000000000278f8ffffffffffffffffffed8108000000000000139dfbfffffffffffffffffff89f23000000000000000000000000000000000000001bf4ffc8360f40d9ffeb100000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b00000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000000000000000000000000000000000000000000003effff91000000001679cef8f2bb3f000000000000000000000000000000000000000000b0ffffe00000000000000000000be3ffffcf03000000000000000000000000000000000000000000000000000000000000000000000096ffffffff58000000000000000070ffffffff74000000000000000658adf3ffffffffffffffffffda8b2400000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000000000004bf7fffffffffffffbfffff5d7f0ffffffffffff8c00000000000038ffffffffff2400000000000000000000000000000000000000000000f0ffffffff1b000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022588ca7b8c7bfb1986d4007000000000000000000000000000000000000000000000000000027abfefffff9ba85553f2f2e3b5983c0f9fffffa9d1b00000000000000000000000000009bffffffffffffffffffffffffffda290000000035e6fffffffffffffffffffffffffff87701000000000000000000000000000000000082fff4170000002bfdff6d000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff9203000000000000000000000000000000000000000000000017fffff04008359ff9fffffffffffc4f0000000000000000000000000000000000000000b0ffffe00000000000000000000056ffffff6d0000000000000000000000000000000000000000000000000000000000000000000000cdffffffff35000000000000000070ffffffff740000000000005ce0fffffffffffffffffffffffffffffeab1a0000000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000034fafffffffffca53d46ffffd400012e8ef4ffffffe70e000000000038ffffffffff2400000000000000000000000000000000000000000000fdffffffff0f000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000035c7fbffffd2170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000376f7ffffcf6010000000000000000000001169e0fffff1660000000000000000000000005cfffffffffffff9d7d2e7ffffffffffef31000030f1fffffffffffbe2d0dbf4ffffffffffffa30200000000000000000000000000000000b4ffc20000000000dbffa0000000000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e00000000000000000000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028effffffff9724b4fffffffb690000000000000000000000000000000000000000000000000000beffffffffffffffffffffffffffe70600000000000000000000000000000000000000b0ffffe00000000000000000000000bbfffff01700000000000000000000000000000000000000000000000000000000000000000030fffffffff104000000000000000070ffffffff74000000000299fffffffffffffffffffffffffffffffffffff15100000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000ad9ffffffffe339000030ffffe60000000017a5fffa3d00000000000038ffffffffff2400000000000000000000000000000000000000000000f8ffffffff16000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000172faffffffcd1300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011beffffde4e0000000000000000000000000000000771ecffffad0a00000000000000000000deffffffffe65d080000001d74e8ffffffe2150ddcffffffffd3570d000000033089effffffff92700000000000000000000000000000000b2ffc50000000000dfff9d00000000000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066fbffffffffffffffef4400000000000000000000000000000000000000000000000000000028edfffffffffffffff5d6e3ffffff4100000000000000000000000000000000000000b0ffffe0000000000000000000000027f9ffffa100000000000000000000000000000000000000000000000000000000000000000bc9ffffffff9100000000000000000070ffffffff740000000083fffffffffffdc78d69574e556488bbf8fffffffffc5d000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000007cffffffffe9210000001efffff8000000000000382d0000000000000038ffffffffff2400000000000000000000000000000000000000000000e7ffffffff23000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffffd50e00000000000000000000000005cdffffffe7020000000000000000000000000000000022d9ffff980b00000000000000000000000000000000000012baffffcb1700000000000000002dfffffffff0210000000000000015c2ffffff9788ffffffff90030000000000000000119effff6b00000000000000000000000000000000007cfff71e00000034feff680000000000000000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f00000000000000000000000000000000000000000000000000000000000af0ffffffffffff7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042eeffffffffffdb28000000000000000000000000000000000000000000000000000000000022a3e9f8e1b97a370300007fffff6600000000000000000000000000000000000000b0ffffe000000000000000000000000087ffffff3d0000000000000000000000000000000000000000000000000000000000002cc9ffffffffec1800000000000000000070ffffffff740000001dfcffffffff981d0000000000000000000e75f2fffffff82d0000000000000000000000000000acffffffffa400000000000000000000000000000000000000000000000007e9ffffffff4a000000000cffffff0a000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000d3ffffffff3e000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016fdffffffff690000000000000000000000004dffffffffff3b00000000000000000000000000000018defffc6b000000000000000000000000000000000000000000038fffffcf0e000000000000005bffffffff8900000000000000000010dbfffffbf7ffffff9c000000000000000000000000404f00000000000000000000000000000000000017f1ffd64a2455e3ffe70d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c00000000000000000000000000000000000000000000000000000000000025808080807c1300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000b0ffffe00000000000000000000000000ae1ffffd2040000000000000000000000000000000000000000000000000001215db6fcfffffffff8470000000000000000000070ffffffff7400000074ffffffff6b0000000000000000000000000025e6ffffffc400000000000000000000000000000000000000000000000000000000000000000000000000000000000000005bffffffffba000000000000faffff1c000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000a5ffffffff6e000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000027ffcffffffffb809000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066ffffffffffbe000000000000000000000000a2ffffffffff8d00000000000000000000000000000bd0fffe5c0000002b8c8c8c890000000000000000001c7e8c8c8c52007bffffbf040000000000006fffffffff4e000000000000000000004fffffffffffffe20c00000000000000000000000000000000000000000000000000000000000000000049f5ffffffffffee3900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffffffa7000000000000000000000000000000000000000000000000000000000000000010e5fffffff729000000000044ffffffffd20500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfccb1f00b0ffffe00000000000000000000000000053ffffff700000000000000000000000000000000000000000000073d2e1f7ffffffffffffffe844000000000000000000000070ffffffff7400000097ffffffdb0000000000000000000000000000004fffffffff2d000000000000000000000000000000000000000000000000000000000000000000000000000000000000009effffffff58000000000000e9ffff2e000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000006bffffffffab000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000001abfffffffffffaf07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b9fffffffffffd170000000000000000000006efffffffffffdf000000000000000000000000000099ffff7b0000000050fffffffc00000000000000000adaffffffef1d0000a4ffff8000000000000062ffffffff440000000000000000000000ddffffffffff700000000000000000000000000000000000000000000000000000000000000000000000279fe5f9df931c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcc000000000000000000000000b4ffff54000000000ae8ffffea3fabffffe00000000000000000000000000000b8fffff11900000000000000000000000000000000000000000090fffffffffffffffff48e1400000000000000000000000070ffffffff740000008cffffffb600000000000000000000000000000004fbffffff6f00000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000000ddfffffffe0e000000000000d7ffff40000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000029fffffffff80f0000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffd3cccccccccccccccccccccccccccc5f0000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010faffffffffffff69000000000000000000004bffffffffffffff3200000000000000000000000049ffffbc010000000050fffffffc000000000000000094ffffffff5a00000008cbfffc35000000000037ffffffff72000000000000000000000097fffffffffa0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffff7d00000000009cffffffffff350000000000000000000000000020b4f6e98306000000000000000013a1f2f0970e0000000000000000088becf5ac1c0000000000000000000000004cffffff2c0000000000003cffffcc000000000000000000000000b4ffff5400000000005ff9fffffbdeffffe0000000000000000000000000000025f8ffffa500000000000000000000000000000000000000000090fffffffffffff8780e000000000000000000000000000070ffffffff740000004bffffffdf00000000000000000000000000000005faffffff8d00000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000006ffffffffdb00000000000000c5ffff52000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000c3ffffffff8400000000000000000000000063ffffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccc5f00000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005effffffd3feffffbf000000000000000000009fffffffd5ffffff85000000000000000000000002d5fff41e000000000050fffffffc0000000000000042feffffffa7000000000035feffbf000000000000d5ffffffe1110000000000000000000071ffffffffc6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020ddfffffff35c0000000000000000000000000000000000000000000000000000000000000000000005e7ffffffff4c00000000000000000000000000000000000000000000000000000000000000000de1fffffff52400000000003dfeffffffcb030000000000000000000000000de1ffffffff9a0000000000000002c8ffffffffbc0000000000000000a3ffffffffdc0a00000000000000000000004cffffff2c0000000000003cffffcc000000002ad9e04200000000b4ffff540000000000003feeffffffffffe000000000000000000000000000000085ffffff40000000000000000000000000000000000000000090fffffffffffffffeb6350000000000000000000000000070ffffffff7400000001c5ffffff68000000000000000000000000000078ffffffff8100000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000019ffffffffbd00000000000000b3ffff64000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccc5f000000000000000057fffffffff9320000000000000000000017e1ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffff91cefffffd17000000000000000005eefffffd69ffffffd700000000000000000000005bffff8a00000000000050fffffffc0000000000000ee1ffffffe311000000000000a9ffff43000000000055ffffffffcb220000000000000000005dffffffff8c000000000000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000000000000000000000000001bd9ffffffff9f0b000000000000000000000000000000000000000000000000000000000000000056ffffffffffb500000000000000000000000000000000000000000000000000000000000000000026baf1c63b0000000000000053d3efab180000000000000000000000000065fffffffffffe1d00000000000041ffffffffffff400000000000001affffffffffff6800000000000000000000004cffffff2c0000000000003cffffcc00000000c3ffffde07000000b4ffff540000000000000026dcffffffffe000000000000000000000000000000009e0ffffd50500000000000000000000000000000000000000010e1d4477ccfffffffffd8401000000000000000000000070ffffffff740000000015c3fffffc6f010000000000000000001752b2ffffffffff5700000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000002bffffffffaf00000000000000a2ffff76000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000001c3ffffffffec37000000000000000021d4ffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf7ffffff5e87ffffff69000000000000000048ffffffc822ffffffff2900000000000000000000c7fff71500000000000050fffffffc0000000000009dfffffffe440000000000000022fcffaf0000000000008afffffffff58d250000000000000058ffffffff6d00000000000000000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000000000c0fffffffffffd21000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffff3d00000000000064ffffffffffff610000000000003cffffffffffff8900000000000000000000004cffffff2c0000000000003cffffcc00000056ffffffff75000000b4ffff54000000000000000014c4ffffffe00000000000000000000000000000000048feffff740000000000000000000000000000000000000000000000000039d0ffffffff90000000000000000000000070ffffffff7400000000000680efffffcb80adc4ccccccd5e3f3ffffffffffffffe70700000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000002affffffffae0000000000000090ffff88000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000025f6fffffffffd9837010000002b86f3ffffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffff283affffffbf00000000000000009cffffff8000e1ffffff7c00000000000000000023ffffab0000000000000050fffffffc00000000004bffffffff90000000000000000000b4fff91000000000000070f9ffffffffffd897674423160c5affffffff54000000000000000000000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000029ffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064fffffffffffe1b00000000000040ffffffffffff3d00000000000018ffffffffffff6500000000000000000000004cffffff2c0000000000003cffffcc000007dffffffbfff0140000b4ffff5400000000000000000007a6ffffe000000000000000000000000000000000005bdefef31b0000000000000000000000000000000000000000000000000009bcffffffff4c0000000000000000000070ffffffff74000000000000003ff6fffffffffffffffffffffffffffffffffff83d0000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000016ffffffffbe000000000000007effff9a000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000046f6fffffffffffff3dbd6f1fffffffff4ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7ffffffe40002e7fffffd1700000000000004ecffffff320099ffffffce00000000000000000075ffff530000000000000050fffffffc0000000012e6ffffffd5080000000000000000005bffff5c0000000000000028aefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb680000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc90000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000093ffffffffffffffeb0700000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff7400000bdeffffffff950000000000000001c3ffffffffb600000000000000009dffffffffd90800000000000000000000004cffffff2c0000000000003cffffcc000079ffffc9acffff930000b4ffff54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1ffffffce0000000000000000000070ffffffff740000000000004ffaffffffffffffffffffffffffffffffffffc62d000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000003fdffffffd9000000000000006cffffac000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000043ebffffffffffffffffffffffffbb68ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffff9a000096ffffff6a00000000000045ffffffe000004cffffffff210000000000000000acffff150000000000000050fffffffc00000000a7fffffffa300000000000000000000019ffff940000000000000000002482d4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa200000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000000000000000000000000000000000000bf1ffffffffffffffff5b00000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff740000001caff6e77d0400000000000000000f9cf1ee920b00000000000000000685eaf4a8180000000000000000000000004cffffff2c0000000000003cffffcc0017f2ffff5234fefffb2700b4ffff5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099ffffffff2900000000000000000070ffffffff74000000000009e9fffffffffffffffffffffffffcf1dbb77f340000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000d0fffffffe0e0000000000005affffbe000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000139ffefffffffffffffffff579055cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffffff4e000043ffffffbf0000000000009affffff90000009f5ffffff730000000000000000e0ffe2000000000000000050fffffffc00000773ffffffff78000000000000000000000000e7ffca0000000000000000000000001c5486aac9ddedf4fbfffffffffdfcfcfcfcfcfcfcfcfcfcfcfcfcfeffffff9a0000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066ffffffffb8ffffffffc400000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcc009cffffc10000a3ffffb100b4ffff54000000000000000000000e5197cbe1f6f5e0c9964f0d00000000000000000000001445000000000000000000000000000000000000000000000000000000005affffffff6300000000000000000070ffffffff74000000000038fffffffff39048210b020000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000008effffffff5100000000000049ffffd0000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000237dbee6f8f4ddbb6d1800005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ffffffff80b000003ecfffffd180000000003eaffffff3f000000b2ffffffc60000000000000001fdffbf000000000000000050ffffffffffffffffffffffa902000000000000000000000000c1ffe9000000000000000000000000000000000000000058ffffffff6e00000000000000000000000000baffffff87000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff9300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cfffffffff51e2ffffffff2e000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcb2ffdfffe3200001cf5ffff41b3ffff5400000000000000001083f1fffffffffffffffffffff38915000000000000000040edfd5a00000000000000006bb2dae881000000000000000000000000000043ffffffff7d00000000000000000070ffffffff74000000000041ffffffff3900000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000045ffffffffb700000000000037ffffe2000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ecffffffb7000000009dffffff6a0000000043ffffffeb0300000065fffffffe1a00000000000010ffffaf000000000000000050ffffffffffffffffffffffd17a110000000000000000000000b0fffa00000000000000000000000000000000000000005dffffffff9f00000000000000000000000000d1ffffff6f0000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c00000000000000000000003ffffdd74500000000000000000000000000000000000000005cffffa4000000000000000000000000000000000000000038fffffffff70d9dffffffff97000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff740000000000000000000000000000234c4c4c4000000000000000284c4c4c3b0000000000000000000000000000000000004cffffff2c0000000000003cffffb5beffff9f0000000082ffffce9fffff54000000000000003feafffffffffffffffffffffffffffff35c0000000000000057fffffc4a0000000000000096fffffffe25000000000000000000000000004effffffff8400000000000000000070ffffffff74000000000011f6fffff80100000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000001d3ffffffff44000000000025fffff4000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044ffffffff6c000000004affffffc00000000097ffffff9d0000000019feffffff6a0000000000001bffffa3000000000000000050ffffffffffffffffffffffffffee5100000000000000000000a8ffff070000000000000000000000000000000000000071ffffffffea0300000000000000000000000dfcffffff34000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000a5fffff424000000000000000000000000000000000000005cffffa40000000000000000000000000000000000000000a2ffffffffaf0048fffffffff30d0000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000004cffffff2c0000000000003cffffe2fffff41a000000000be5ffffdbffff5400000000000062fbffffffffffffe8d4d7edffffffffffffff9501000000000000a4ffffe8130000000000005affffffff800000000000000000000000000074ffffffff6c00000000000000000070ffffffff7400000000000085ffffff5f00000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000005cffffffffe01c0000000013ffffff060000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096ffffffff210000000006f0fffffd18000002e8ffffff4c0000000000cbffffffbd0000000000000effffac000000000000000050fffffffc00000004133d8ff8fffffd54000000000000000000b6fff90000000000000000000000000000000000000000a3ffffffffff5c000000000000000000000064fffffff003000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000018f1ffffb7000000000000000000000000000000000000005cffffa40000000000000000000000000000000000000013f7ffffffff530004e7ffffffff6a0000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000004cffffff2c0000000000003cffffffffff7d00000000000061ffffffffff5400000000003ffbffffffffdc651a00000000226fe1ffffffffff8800000000000013edffffa40000000000000ef2ffffffed10000000000000000000000000c7ffffffff4700000000000000000070ffffffff7400000000000003acfffff97874a6bdc7b9a36f3000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000001b6ffffffffdd2f00000003feffff180000004f9e3b0000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e6ffffffd5000000000000a4ffffff6b000040fffffff30800000000007efffffffc13000000000001fcffc0000000000000000050fffffffc0000000000000038f9ffffee130000000000000000c8ffe80000000000004b741c000000000000000000000ff2ffffffffffe3160000000000000000000ddeffffff95000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000071ffffff510000000000000000000000000000000000005cffffa40000000000000000000000000000000000000075ffffffffe705000086ffffffffd30000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000033dcdcdcdce6ffffffe2dcdcdcdc1b003cffffffffe20900000000000002ceffffffff540000000011e9ffffffff92050000000000000000068dffffffffff5a00000000000082fffffe2800000000000092ffffffffad020000000000000000000051ffffffffee0600000000000000000070ffffffff7400000000000000026ef7ffffffffffffffffffffcd570000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000014e3fffffffffc96320000f0ffff2a0f62d0ffffed1d00000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bffffffff8a00000000000050ffffffc0000095ffffffaa00000000000031ffffffff62000000000000deffe5000000000000000050fffffffc0000000000000000a0ffffff760000000000000001f0ffc8000000000060fffff67b070000000000000001a4fffffffeffffffcc1b0000000000000008b5fffffffc220000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000004d1ffffe10a00000000000000000000000000000000005cffffa400000000000000000000000000000000000001dcffffffff8400000020fdffffffff3d00000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000003cffffffffffffffffffffffffff20003cffffffff5b00000000000000003fffffffff540000000083ffffffff8f00000000000000000000000074ffffffffe50a00000000002bffffff8500000000000017eaffffffffa90d00000000000000003ef2ffffffff8d0000000000000000000070ffffffff74000000000000000893ffffffffffffffffffffffffffb10d000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000023d9ffffffffffffe7bef6ffffddfbffffffffff9d00000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffffff3e00000000000009f4fffffd1802e6ffffff5900000000000000e3ffffffb4000000000000aaffff1a0000000000000050fffffffc000000000000000064ffffffbc0000000000000026ffff920000000004e7ffffffffe378230000000032b6ffffffff52e7ffffffed7b210000000954d7ffffffff88000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff28000000000000000000000000000000003cffffff860000000000000000a9feffffffffffffffffffffffffff7e00000000000000000000000000000048fffffffffd1f00000000b7ffffffffa700000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000003cffffffffffffffffffffffffff20003cffffffb00100000000000000000097fcffff540000000ef1ffffffd60400000000000000000000000000afffffffff79000000000005fcffffc5000000000000004ffeffffffffe4721b00000003379cfdffffffffe50d0000000000000000000070ffffffff740000000000000acaffffffffffffffffffffffffffffffc40a0000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000013b6fffffffffffffffffffffffffffffffe9a0800000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dfffffffee0400000000000000aaffffff6a3dfffffff90f0000000000000097fffffff90e000000000072ffff5c0000000000000050fffffffc000000000000000059ffffffdc000000000000006bffff5900000000003cebffffffffffffecd7d3edffffffffffaa0039f9ffffffffffe9d4dcf7ffffffffffc50400000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000000a2fffff9260000000000000afdffffffffffffffffffffffffffffa4000000000000000000000000000000b1ffffffffb5000000000050fffffffff916000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053ffffffff5f000000000000000000000000000027feffffffd3000000000000f8ffffe9000000000000000063fdffffffffffffe6d2d9f4fffffffffffff034000000000000000000000070ffffffff74000000000000abffffffffed83360f04134195f7ffffffff8d0000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000046d0fffffffffffffffffffffffeb935000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032ffffffffa7000000000000000057ffffffb487ffffffb800000000000000004affffffff59000000000020feffb40000000000000050fffffffc00000000000000007affffffdd00000000000000c4fff80f0000000000001abaffffffffffffffffffffffffffd11000003de4ffffffffffffffffffffffffbc0d0000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000000000000000017f0ffffba00000000000010ecffffaa7c7c7c7c7cabffffd07c7c4f00000000000000000000000000001efcffffffff4d000000000004e5ffffffff79000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097fffffffd11000000000000000000000000000000caffffffff230000000021fffffff20000000000000000004ee7ffffffffffffffffffffffffffffdc3500000000000000000000000070ffffffff74000000000052ffffffffca17000000000000002ae3fffffffc2000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000003884bde2f5feffffeaac731e0000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffffff5c00000000000000000cf7fffff1c7ffffff67000000000000000008f4ffffffab000000000000c4fffb2300000000000050fffffffc0000000000000007d6ffffffc400000000000029feffac00000000000000000054d3ffffffffffffffffffffa90f0000000015acfefffffffffffffffff1780600000000000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000000000000000000006dffffff540000000000004bfeffdd0f000000005cffffa4000000000000000000000000000000000084ffffffffe20300000000000082ffffffffe0020000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc800000000000000000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000002abc3200000000000000000000cfffffffd7000000000000000000000000000000008affffffff550000000073ffffffe000000000000000000000118defffffffffffffffffffffec840a0000000000000000000000000070ffffffff740000000000bcfffffff2190000000000000000003affffffff7800000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000090ffff850000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d7fffffffd13000000000000000000b1fffffffefffffd18000000000000000000b0fffffff409000000000057ffffa700000000000050fffffffc00000000000138bfffffffff83000000000000a7ffff4000000000000000000000003886bfe4f6fbedcb913500000000000000002a81bfe7f8f5dcb46614000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff89000000000000000000000000000000000000000003cfffffe30b0000000000008dffffad000000005cffffa40000000000000000000000000000000005e8ffffffff7e000000000000001efdffffffff4c0000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000025edefffffffffffffffffffffeaa27000000000000000073faffca02000000000000000000e6ffffffc00000000000000000000000000000000071ffffffff6e00000008e4ffffffb2000000000000000000000000095794cae4f6f7e5cc9556080000000000000000000000000000000000000000000000000005f9ffffff990000000000000000000000c9ffffffb200000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000007fffff960000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029ffffffffc5000000000000000000005effffffffffffc50000000000000000000063ffffffff50000000000001d2fffe32000000000050ffffffffccccccccd7f4fffffffffff51f000000000035fdffbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe2300000000000000000000000000000000000000000039feffff8900000000000005c9ffff700000005cffffa40000000000000000000000000000000057fffffffffb1b0000000000000000b4ffffffffb60000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000001bcafffffffffffffffffffffffffffffc7a00000000000000ebffffff69000000000000000000faffffffbc000000000000000000000000000000006effffffff8100000032ffffffff680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffff65000000000000000000000096ffffffcd00000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000006fffffa7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffff790000000000000000000010faffffffffff740000000000000000000017feffffffa300000000000047ffffc9070000000050fffffffffffffffffffffffffffffe60000000000007d5fffb330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000000000000000000000000009ffffffa2900000000000021f0fffa3700005cffffa400000000000000000000000000000000c0ffffffffaf0000000000000000004dfffffffffd210000000000000000000000000000000000000000000000006afffffffffb0e0000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa003000000000099ffffffed0f0000000000000003ffffffffd60000000000000000000000000000000085ffffffff710000000058c7fff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024ffffffff60000000000000000000000091ffffffc500000000000038ffffffffffd3cccccccccccccccccccccccccccc5f000000000000000000000000000000000000000000000000000000000000005effffb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e2fffff7b8250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceffffffff2e0000000000000000000000b7ffffffffff230000000000000000000000c9ffffffef0500000000000097ffff9f0000000050ffffffffffffffffffffffffffe04d0000000000009dffff7e00000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000000000000000000000000000015eeffffbd0000000000000053ffffe112005cffffa40000000000000000000000000000002affffffffff4700000000000000000003e2ffffffff8900000000000000000000000000000000000000000000000de5ffffffffff930000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000001bf6ffffff810000000000000000f1fffffffe16000000000000000000000000000000bdffffffff5a0000000000002e4b00000000000000000000002f71abd4e7f8f6e4d1a268230000000000000000000000000000000000000000000000000000000bffffffff860000000000000000000000b8ffffffa700000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f00000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffffe200000000000000000000000064ffffffffd20000000000000000000000007cffffffff480000000000000acfffff7100000050fffffffffffffffff4e7c6984c050000000000007effffbd03000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c0100000000000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe7040000000000000000000000000000000000000000000000006affffff570000000000000096ffffb4015cffffa400000000000000000000000000000093ffffffffde01000000000000000000007fffffffffeb070000000000000000000000000000000000000000000091fffffffffffffd3300000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000b8ffffffffe93500000000000000000387fffffffffe47000000000089fffffff11300000000000000c8ffffffff72000000000000000000000000000016f9ffffffff2d00000000000000000000000000000000025dcafffffffffffffffffffffffeb9480000000000000000000000000000000000000000000000000000daffffffdf060000000000000000001ef8ffffff6100000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023fdffda0000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000000000000000037f9ffffffef9f0e0000000000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff920300000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073fffffff2560000000000000000000000000acafffff24e00000000000000000000000012d4ffffff9a0000000000000017dcffff76000000000000000000000000000000000000000000018bffffcd0d0000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000000000000000000000000000000002ccffffe50d00000000000007cfffff7758ffffa400000000000000000000000000000bf1ffffffff7800000000000000000000001bfcffffffff5b00000000000000000000000000000000000000000031fcffffffffffffffcb02000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000004bfffffffff52b000000000000000000000094ffffffffd4010000000016f7ffffff82000000000000008dffffffffeb13000000000000000000000000008effffffffdf0000000000000000000000000000000025c3ffffffffffffffffffffffffffffffffa813000000000000000000000000000a93eff29f12000000000083ffffffff9801000000000000000ac3fffffffc3a0a000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000487f73000000000000000000000000000000000010e5fffffff729000000000044ffffffffd205000000000000000000006cffffffffffb600000000000000000000000000000000000000000000000000028effffffff9724b4fffffffb69000000000000000000000000000000000000000000000017d3ffffffffd72e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d7ffffa50d00000000000000000000000000000000000016b1ffffc91500000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f000000000000000000000000000000000000000000000000000037feffff8c0000000000000026f3fffc87ffffa4000000000000000000000000000066fffffffffa16000000000000000000000000b1ffffffffc5000000000000000000000000000000000000000002c9ffffffffb9ffffffff6c000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc800000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000099ffffffe8060000000000003fffffffffffbf07000000000000000000000049fcffffffff8500000000000000000000000000000035f1ffffffffffffffe7d3d6ebffffffffffffffdc1a000000000000000000000000b7ffffffffce050000000012eaffffffffc044050000000b58d9ffffffffffffffe59f05000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a0000000000000000000000a6ffffffffff6c000000000000000000000000000000000000000000000000000066fbffffffffffffffef440000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010bdffffe4570100000000000000000000000000000463ebffffab0900000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000000000000000000000000000000000009bfffffb2b000000000000005cfffffbffffa40000000000000000000000000000cfffffffffa9000000000000000000000000004affffffffff2e0000000000000000000000000000000000000069ffffffffce21fefffffff1180000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000002bfffffffff1090000000000000000000000000076ffffffffb2000000000027ffffffff5c00000000000001deffffffffffc91f0000000000000000005df6ffffffffec0f000000000000000000000000000028eeffffffffffca5b16000000001f6adbffffffffffd60f0000000000000000000043ffffffffffff6200000000004dfbfffffffffff8dad0defcffffffffffffffffffffff34000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffff7d00000000009cffffffffff3500000000000000000000000bd5fffffffff72a000000000000000000000000000000000000000000000000000042eeffffffffffdb2800000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020efffffeb6b000000000000000000000000000000000000177ac4e9fae7bd6f0d000000000000000000000000000000000375f7ffffd2620e00000000000000000000196fdefffff0640000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000000013edffffc000000000000000009fffffffffa40000000000000000000000000039ffffffffff410000000000000000000000000002e0ffffffff9800000000000000000000000000000000000016efffffffff5300a8ffffffffa70000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000c4ffffffc3000000000000006ffffffffffffff89239020000001154c4ffffffffffff5d000000000000000000000000000000c3fffffffff8690000000000000000000489ffffffffff930000000000000000000066ffffffffffff8800000000000055f4ffffffffffffffffffffffffffffffffffffffff38000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ac33b00000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000000000028f3ffffffffd006000000000000000000000000000000000000000000000000000025808080807c130000000000000000000000000000000000000000000000000000000000065c7d808080805f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffe4c0000000000000000000000000000000071f3ffffffffffffffea59000000000000000000000000000000000026a9fdfffff6bb7e573a2d32425b8fc6fdfffffa9c1b0000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe01800000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000000000067ffffff5a000000000000000ad5ffffffa400000000000000000000000000a2ffffffffd80000000000000000000000000000007cfffffffff30e0000000000000000000000000000000000a3ffffffffcd010027fbffffffff4500000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000adffffffff64000000000000000000000000000000dfffffffff35000000000063fffffffe1c0000000000000ae4fffffffffffffffff5ded2e5fdffffffffffffff8000000000000000000000000000000057fffffffffe5700000000000000000000000081fffffffffc2a0000000000000000003fffffffffffff5e0000000000000021affdffffffffffffffffffe3694c4c4c4c4c4c4c10000038ffffffffff240000000000000000000000000000000000000000000000799f020000000000000000000000000000000012bc310000000000000000000000a9fffe92000000000000000026baf1c63b0000000000000053d3efab18000000000000000000000000000057ffffffffff8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008effffffed1e000000000000000000000000000097ffffffffffffffffffffff780000000000000000000000000000000000002995e9ffffffffffffffffffffffffe18c1f000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb01000000000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000000000025bb4e5f9f7dca13f000000000002caffffe70e000000000000002cf6ffffa400000000000000000000000013f7ffffffff7200000000000000000000000000000019fbffffffff6b0000000000000000000000000000000041fffffffffe3b00000090ffffffffdb08000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b00000000000ffaffffff6f000000000000005ffffffffffffffffffffffffffffffffffffff86b00000000000000000000000000000000b6ffffffffa80000000000000000000000000001cfffffffff8700000000000000000000b3ffffffffcc040000000000000000001f74afdceffbeed19d4f06000000000000000000000038ffffffffff240000000000000000000000000000000000000000000079ffffa202000000000000000000000000000013d0ffee3100000000000000000046ffffffff0d00000000000000000000000000000000000000000000000000000000000000000000000000000091fffffffffe41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7ffffffc80500000000000000000000000067ffffffffffe6d1e6fffffffffe4e00000000000000000000000000000000000000033f79add6e7f8f6e5d3a77437010000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b00000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000000013c6ffffffffffffffffa9090000000034fdffff8f00000000000000000000000000000000000000000000000075fffffffff71200000000000000000000000000000000adffffffffd400000000000000000000000000000006d7ffffffffa2000000000fe8ffffffff80000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000baffffffc00000000000000000beffffffffb9befffffffffffffffffffeaf2e000000000000000000000000000000000df9ffffffff3100000000000000000000000000005affffffffdb000000000000000000000a8fedf19c11000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000047ffffffffa40300000000000000000000000014d1ffffffeb100000000000000003d7ffffffbc0000000000000000000000000000000000000000000000000000000000000000000000000000000005c6ffffffffe31100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eedffffff8e000000000000000000000010f2ffffffbe2d0000002dbdffffffe407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed110000000000000000000000000000000036ffffffffd400000057ffffffffb100000000000000000000000000000003c4fffffffff7fcffffffffb3000000000098fffffb2d0000000000000000000000000000000000000000000001dcffffffffa2000000000000000000000000000000000046ffffffffff3e00000000000000000000000000007cfffffffff118000000000060fffffffff8250000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000faffffffff120000000000000000000000000000008bffffffff820000000000006bfffffff9080000000000000021f1ffffffff572d85c1e6f8f2dcb7742700000000000000000000000000000000000031ffffffffe700000000000000000000000000000011ffffffffff07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000195ffffffffa7030000000000000000000015d3fffffffd5e00000000000000005fffffffff3500000065808080180000000000000000000000000000000000000000000000000000000000000000001ceaffffffffa90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffff4f0000000000000000000078ffffffc505000000000004c1ffffff67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000000000000000000000000ceffffffff3a0000bcffffffff4900000000000000000000000000000067ffffffbd2b000553e4ffffff530000000012ebffffc20000000000000000000000000000000000000000000048ffffffffff3b000000000000000000000000000000000001ddffffffffa70000000000000000000000000022f6ffffffff7100000000000001c6ffffffffbb0000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000f9ffffffff130000000000000000000000000000008cffffffff8100000000000029ffffffff4000000000000000005afffffffff52e0000000000000000000000000000000000000000000000000000004affffffffc500000000000000000000000000000000eeffffffff2000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000092ffffffffaa04000000000000000016d4fffffffc5b000000000000000005deffffffac00000000beffffff4c0000000000000000000000000000000000000000000000000000000000000000000043fdffffffff5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008affffffef20000000000000000000c6ffffff380000000000000031ffffffba00000000000000000000000000000000175a94bedff1fbfbf0dbba8d54110000000000000000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000000d9ffffc906000000002efaffffb0000000000064ffffff5d000000000000000000000000000000000000000000b1ffffffffd20000000000000000000000000000000000000078fffffffff916000000000000000000000000b6ffffffffd4040000000000000033fdffffffff5a00000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e00000000000000ebffffff7d0000000000000000009bffffffffde12000000000000000000000000000000000000000000000000000056ffffffffba00000000000000000000000000000000e2ffffffff2d000094fff4e1b6731500000000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000090ffffffffad0500000000000017d6fffffffc5800000000000000000062ffffffff3000000000a0ffffff840000000000000000003a93d2f3f7e0a5470000000000000000000000000000000000007cfffffffff221000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4ffffffca060000000000000008faffffe5000000000000000000dbfffff7050000000000000000000000000358befdfffffffffffffffffffffffffab44c010000000000000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000057de1ef33000000000000caffffd6000000000001c7ffffe80f000000000000000000000000000000000000001efcffffffff6b0000000000000000000000000000000000000016faffffffff7a000000000000000000000054ffffffffff4100000000000000000099ffffffffe80f000000000000000070ffffffff7400000000000000000004387799acdbffffffd80000000000000088ffffffc8000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a00000000000000b1ffffffab00000000000000000008cfffffffffba030000000000000000000000000000000000000000000000000046ffffffffce00000000000000000000000000000000f7ffffffff1d000094fffffffffff57d020000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000008fffffffffaf050000000019d7fffffffb5500000000000000000000ceffffffbb000000000065fffffff11700000000001476d8ffffffffffffffffaf0b0000000000000000000000000000000001b4ffffffffc50300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cebffffff91000000000000001fffffffb9000000000000000000abffffff1b000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000000000000000000000000000098ffffffff46d2fffffffb180000000000000000000000000000000000000100000000000000ceffffce00000000000032fdffff920000000000000000000000000000000000000084fffffffff50f0000000000000000000000000000000000000000aaffffffffe1020000000000000000000de4ffffffffa80000000000000000000013edffffffff95000000000000000070ffffffff74000000000000001887eeffffffffffffffffd80000000000000088ffffffc8000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff320000000000000083ffffffd60000000000000000000024f1ffffffff8a0000000000000000000000000000000000000000000000000023fffffffff10500000000000000000000000000001ffffffffff504000090ffffffffffffffae0200000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000008dffffffffb20600001ad8fffffffa52000000000000000000003bffffffff49000000000012f5ffffffd7490b1047a2f8ffffffffffffffffffffffbf020000000000000000000000000000000011dfffffffff7d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048feffffff5300000000000031ffffffa90000000000000000009affffff3000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd7000000000000000000000000000000000030ffffffffb1ffffffffac00000000000000000000000000000000000000000000000000001df8ffff950000000000000095fffffc2f000000000000000000000000000000000005e8ffffffff9c00000000000000000000000000000000000000000043ffffffffff4d0000000000000000008efffffffff41c000000000000000000000069fffffffffd350000000000000070ffffffff740000000000006af6ffffffffffffffffffffd80000000000000088ffffffc80000000000000000006affffffffa200000000000000000000000000001dffffffffef020000000000000057fffffffb050000000000000000000053ffffffffff5800000000000000000000000000000000000000000000000000e7ffffffff4600000000000000000000000000006effffffffbe00000034c3d4f6ffffffffff8000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000008bffffffffb4071bdafffffff94f0000000000000000000000a1ffffffe30200000000000085fffffffffffffffffffffffffffff8d7dcffffffffff70000000000000000000000000000000000033f8fffffffb3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fffffff02300000000002bffffffad0000000000000000009fffffff2a000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb23000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000082363dfffffe6170000000000000010e9ffffc5010000000000000000000000000000000057ffffffffff3500000000000000000000000000000000000000000001daffffffffb600000000000000002ffcffffffff7800000000000000000000000002ceffffffffcd0300000000000070ffffffff740000000003a7ffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000002fffffffff1d000000000000000000000091fffffffff52f0000000000000000000000000000000000000000000000008affffffffc4000000000000000000000000000be3ffffffff5e0000000000000869f6fffffff618000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000000089ffffffffbadbfffffff94c000000000000000000000006f0ffffff840000000000000005beffffffffffffffffffffffc2590b00002cd4ffffffe404000000000000000000000000000000000067ffffffffdb0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c1ffffffcd070000000019ffffffc4000000000000000000b7ffffff180000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe8280000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000054fffffffffbaa1900000000000000000061ffffff6000000000000000000000000000000000c1ffffffffcd000000000000000000000000000000000000000000000075fffffffffd2200000000000001c7ffffffffd906000000000000000000000000003afeffffffff6e00000000000070ffffffff74000000009dffffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000000bfffffffff780000000000000000000000000de5ffffffff47000000000000000015ffffffff36000000000000000000000005c8ffffffffde1300000000000000000000000000000000000000000000001af0ffffffff7e000000000000000000000002a5ffffffffd70700000000000000004bffffffff74000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000087fffffffffffffff8490000000000000000000000004cffffffff2900000000000000000898fdffffffffffffeb902c00000000000025fcffffff3f000000000000000000000000000000000000a1ffffffff910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ae9ffffff950000000002effffff3050000000000000003edffffef0200000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe01800000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c00000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000054ffffffffb6210000000000000000000001c4ffffe91000000000000000000000000000002affffffffff62000000000000000000000000000000000000000000000014f7ffffffff8900000000000067ffffffffff47000000000000000000000000000000a2fffffffff11a000000000070ffffffff7400000054ffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000046fffffffff62d000000000000000000000098ffffffffcf00000000000000000001faffffff4f0000000000000000000000001eedffffffffbb0300000000000000000000000000000000000000000000005bfeffffffff950c000000000000000018b1fffffffff63700000000000000000000c0ffffffb6000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085fffffffffff746000000000000000000000000009dffffffda0000000000000000000000277db0c5ba934f06000000000000000000a7ffffff7900000000000000001e72b5def4f8e5c286340bd6fffffffd3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045fdffffff5700000000b3ffffff590000000000000053ffffffb200000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb0100000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff5800000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000d3255adfffff137000000000000000000002ffcffff95000000000000000000000000000094fffffffba8020000000000000000000000000000000000000000000000005eeeffffffeb070000000015eeffffffffaf0000000000000000000000000000000018f1ffffffffaa000000000070ffffffff74000004e1ffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000b3ffffffffea370000000000000000048afffffffffd4200000000000000000000e7ffffff5e000000000000000000000000004bfeffffffff8b0000000000000000000000000000000000000000000000006bfcffffffffec904a1b070a20539ef4fffffffff34800000000000000000000007affffffd6000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ef0ffffffffc90900000000000000000000000000dfffffff8b0000000000000000000000000000000000000000000000000000000074ffffff950000000000001aa1fbffffffffffffffffffc666f9ffffffd80500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffff2250000005affffffe51b000000000019e2ffffff5a00000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff610000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000094ffffdc030000000000000000000092fffffd3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1fffffffff620000000000000000000000000000000000073ffffffffff470000000070ffffffff74000047ffffffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff800000000000000000000000deffffff66000000000000000000000000000088ffffffffff590000000000000000000000000000000000000000000000003ed9ffffffffffffffffffffffffffffffffc52700000000000000000000000061ffffffe6000000000038ffffffffff24000000000000000000000000000000000000000000d0fffff54c0000002285c7eefcf7deb06a110000000000000000000000000000000000000020dfffffffffffffbd0a00000000000000000000001effffffff49000000000000000000000000000000000000000000000000000000002c80808051000000000044eafffffffffffffffffffffffffcecffffffff6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002beffffffd008000004ddffffffe5651b051b65e4ffffffdf04000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed11000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052605000000000021ffffff41000000000000000000000fe8ffffc70100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fffffffffff7e00000000000000000000000000000000000004d5ffffffffdc0800000070ffffffff74000095ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff98020000000000000000000000d5ffffff6e000000000000000000000000000003c1fffffffff530000000000000000000000000000000000000000000000000035cbdfdfffffffffffffffffffff8ae4900000000000000000000000000006bffffffd7000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffa3000380fbfffffffffffffffff576040000000000000000000000000000000021e0fffffff9ffffffffbf0b000000000000000000005bfffffffd0f000000000000000000000000000000000000000000000000000000000000000000000000003df8fffffffffffffde2d1dcf4ffffffffffffffffe30700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018e7ffffff990000003dfcfffffffffffffffffffffffc3e00000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066faffc1000000000009ffffff6600000000000000000000005dffffff6300000000000000000038fffffffffffffffffffffffffffffff6eaceab783c03000000000000000000000000000000000000000005d6ffffffffdc080000000000000000000000000000000000000042feffffffff8300000070ffffffff740000b9ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000000000000000d3ffffff700000000000000000000000000000001ae9ffffffffdf1300000000000000000000000000000000000000000000000032aafafffffffffffffffffffff4982000000000000000000000000000007effffffc2000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffba09bfffffffffffffffffffffffffcf1b000000000000000000000000000022e2fffffff54176ffffffffc10c0000000000000000008affffffd10000000000000000000000000000000000000000000000000000000000000000000000000018edffffffffffc3510f000000023692f8ffffffffffff680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fdffffff5a0000005ffbfffffffffffffffffffa5f00000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe90500000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fffffff490000000043ffffff63000000000000000000000000c2ffffeb12000000000000000038ffffffffffffffffffffffffffffffffffffffffffe992240000000000000000000000000000000000007affffffffde2e00000000000000000000000000000000000000000075f5fffffff927000070ffffffff740000d1ffffffffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000000000000000155d8fffffffffffffffffffffda1210000000000000000000000000000dcffffff680000000000000000000000000000000043fdffffffffbc030000000000000000000000000000000000000000000593fdffffffffffe7d3d6ecfffffffffff7720000000000000000000000000092ffffffa5000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffd4b3fffffffce6d1e0f8ffffffffffffdc1d00000000000000000000000024e3fffffff43f000074ffffffffc30d0000000000000000b6ffffffa30000000000000000fcffffffe80000000000000000000000000000000000000000000000009cfffffffffd6f00000000000000000023d0ffffffffffca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007efffffff3280000003ed0ffffffffffffffcf3d0000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff4800000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000000000000000000000000000035c7fbffffd21700000000000000000000000000000000000001d7ffffed53070441dfffffff270000000000000000000000002cfbffff98000000000000000038fffffffffffffffffffffffffffffffffffffffffffffffda31b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000c4ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000000000000e4ffffff6000000000000000000000000000000000007dffffffffff8c000000000000000000000000000000000000000005baffffffffe26a1900000000247beeffffffff92000000000000000000000000baffffff78000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffffffc85a10000000074abbffffffffffd1050000000000000000000025e4fffffff33d0000000072ffffffffc50e00000000000000e0ffffff790000000000000000fcffffffe800000000000000000000000000000000000000000000001dfdffffffff7800000000000000000000000cd2ffffffffff190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002baffffffd30900000002438eb4c5b38d41010000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a00000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd30000000000000000000000000000000000000172faffffffcd1300000000000000000000000000000000000000003dfbfffffffdfbffffffffa300000000000000000000000000008ffffffd340000000000000038ffffffffffd3cccccccccccccccccdd6ebfffffffffffffffff361000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aaffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffff5400000000000000000000000000000000000070ddfdffffff590000000000000000000000000000000000000090ffffffffb20c00000000000000001accffffffff630000000000000000000000e4ffffff49000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffff7e01000000000000000068feffffffff8100000000000000000026e5fffffff33c00000000000070ffffffffc70f000000000001fbffffff520000000000000000fcffffffe800000000000000000000000000000000000000000000006bffffffffd80200000000000000000000000028fcffffffff56000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e5f9edcb84220000000016e5ffffff9d0000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd700000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff95000000000000000000000000000000000014b4ffffffffc60f000000000000000000000000000000000000000000004eefffffffffffffffb00900000000000000000000000000000ddeffffca0200000000000038ffffffffff240000000000000000000000114997eeffffffffffff9a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000effffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000027fcffffffd1080000000000000000000018eaffffffed0b0000000000000000000fffffffff1a000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff7d000000000000000000000070fffffffffa190000000000000028e6fffffff23b00000000000000006fffffffffc9100000000016ffffffff370000000000000000fcffffffe80000000000000000000000000000000000000000000000b1ffffffff6f0000000000000000000000000000a3ffffffff7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059eafffffffffffffffa8e050000003efcffffff5f00000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000000000000000000003fe4ffffffffbf0c000000000000000000000000000000000000000000000000177fc9f1fae6af4e000000000000000000000000000000000024c1f9ff6600000000000038ffffffffff2400000000000000000000000000000f88f7ffffffffffad030000000000000000000000000000000000000000000000000024e2fffff7b8250000000000000000000000000000000000acffffff200000001dfeffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ffffffff22000000000000000000000000000000000000000000000000000000000000000000000000000000000000008affffffff4f0000000000000000000000007affffffff610000000000000000003bffffffeb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000001c5ffffffff7f00000000000029e7fffffff139000000000000000000006dffffffffcb110000002dffffffff1d0000000000000000fcffffffe80000000000000000000000000000000000000000000000ceffffffff2c000000000000000000000000000051ffffffff9700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffbe080000007afffffff52a000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe4030000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000021d6ffffffffff98000000000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000acffffff20000000009effffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000003eddffffaa00000000000000000000000000000000004cfffffffe0900000000000000000000043c83c1daeff9e6d1ab651d000000000000000000000000000000000000000000cbfffffff8070000000000000000000000002affffffffa100000000000000000065ffffffc000000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c0000000000000000000000004bffffffffe400000000000de7fffffff1380000000000000000000000006afeffffffb40000003cffffffff090000000000000000fcffffffe80000000000000000000000000000000000000000000000e5ffffffff0b000000000000000000000000000025ffffffff9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050ffffffffffecd1ddfeffffffff9f00000001b7ffffffd50b0000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c0000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000000000000001abfffffffffffaf07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000011c1ffffffffff5b00000000000000000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000acffffff200000000015e9ffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000000000000000000000034f4fffff31b000000000000000000000000000000000076ffffffdf000000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000eeffffffd90000000000000000000000000003feffffffc40000000000000000007effffffa700000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c00000000000000000000000003e9ffffffff27000000000065fefff036000000000000000000000000000068feffe62700000044ffffffff010000000000000000fcffffffe80000000000000000000000000000000000000000000000e3fffffffc00000000000000000000000000000016ffffffff8e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e0ffffffce3a000000178fffffffff3b00000014e3ffffffa1000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000000000000000000000000012558fbbddf1fbfdf7eedcc6a37c470f000000000000000000000038ffffffffff240000000000000000000000000000000000000edefffffffff016000000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000acffffff2000000000002eeefffffffffffffffffffffffff7cccccccccccccce7fffffff4cccccccccca50000000000000000000000000023e9ffffff73000000000000000000000000000000000000a2ffffffb400000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000000000f5ffffffd40000000000000000000000000001fbffffffcc00000000000000000091ffffff9200000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c00000000000000000000000000afffffffff6200000000000065ee350000000000000000000000000000000066e426000000004cfffffff8000000000000000000fcffffffe80000000000000000000000000000000000000000000000caffffffff0e00000000000000000000000000002affffffff7900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffda0d0000000000007effffffb5000000003bfbffffff6200000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014eb6fafffffffffffffffffffffffffffffab86211000000000000000038ffffffffff240000000000000000000000000000000000000038fbffffffff9800000000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000acffffff2000000000000029ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd000000000000000000000000015dbffffffd304000000000000000000000000000000000000dbffffff88000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000000000000dcfffffff2040000000000000000000000001fffffffffb30000000000000000009affffff9000000000000038ffffffffffd3cccccccccccccccccccccccccccccc3f0000000000d0ffffffff1c000000000000000000000000007fffffffff9200000000000000120000000000000000000000000000000000000c00000000004cfffffff7000000000000000000fcffffffe80000000000000000000000000000000000000000000000a5ffffffff3a000000000000000000000000000056ffffffff53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffff590000000000000006e4fffff90b0000000076fffffff62d00000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff58000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad6fffffffffffffffffffffffffffffffffffffffff9961900000000000038ffffffffff24000000000000000000000000000000000000000094fffffffffa1a00000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000acffffff2000000000000000046edcffffffffffffffffffffffffffffffffffffffffffffffffffffffd000000000000000000000000bcafffffffe3d00000000000000000000000000000000000017ffffffff4e00000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000000000000000000000000000b1ffffffff4700000000000000000000000070ffffffff870000000000000000007cffffffbb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000065ffffffffa5000000000000000000000000000000000000000000000000000000000000000045fffffffe000000000000000000fcffffffe8000000318bcce6fbf4d8a65b080000000000000000000059ffffffff890000000000000000000000000000a5fffffffc10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dafffffc0d000000000000000099ffffff420000000001b3ffffffd80c0000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000046fffffffff55b0000000000000000000000000000000000000000006cf7ffffffff960000000000000000000000000011abfffffffffffffffffee6d4cdd3e2fafffffffffffffffffff685000000000038ffffffffff24000000000000000000000000000000000000000024fdffffffff8200000000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000acffffff20000000000000000000024281bcdbedfdffffffffffffffffffffffffffffffffffffffffffd00000000000000000000004b5ffffffffa00000000000000000000000000000000000000056fffffffd11000000000000b8ffffffffe93500000000000000000387fffffffffe470000000000000000000000000000005cffffffffcd070000000000000000000015e8ffffffff3000000000000000000029fefffffd35000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000056ffffffffb800000000000000000000000000000000000000000000000000000000000000003dffffffff060000000000000000fcffffffe80012a5ffffffffffffffffffe85c0000000000000000000df5fffffff11400000000000000000000000023fbffffffc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2ffffe300000000000000000070ffffff5b000000000012e1ffffffa50000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000098fffffffff7270000000000000000000000000000000000000032fcffffffffdf0c0000000000000000000000002ae0ffffffffffffda803c090000000000052d5ea8f4fffffffffffff4000000000038ffffffffff24000000000000000000000000000000000000000000b1ffffffffdb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffee1600000000000000000000000000000000000000a4ffffffcf0000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000000000009deffffffffb00d00000000000000001ccdffffffffbb000000000000000000000089ffffffe44d0500000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000050ffffffffbe000000000000000000003078bad8effae7d2b37431010000000000000000000031ffffffff170000000000000000fcffffffe81fdfffffffffffffffffffffffffb50b000000000000000081ffffffffb7030000000000000000000007c7ffffffff4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feffffd800000000000000000064ffffff6a00000000000038faffffff6600000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b0000000000000000000cdeffffffffc602000000000000000000000000000000000004cefffffffffe4200000000000000000000000032eeffffffffffd95a020000000000000000000000000966defffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000061ffffffffff2b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffffee1470000000000000000000000000000000000000004edffffff80000000000000c4ffffffff750000000000000000000000000be3ffffffff4d00000000000000000000000000000048feffffffffe26f1c000000002781eefffffffff6250000000000000000000000007dfbfffffffb47000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000005dffffffffaf000000000000000047caffffffffffffffffffffffe37c0d00000000000000001bffffffff300000000000000000fcfffffff2defffffffae2d1e4fcffffffffffffc10c000000000000000be3ffffffffb512000000000000000014bcffffffffc50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffe500000000000000000072ffffff5b0000000000000072fffffff730000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd30000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a00000000000000000000003ffeffffffff73000000000000000000000000000000000076ffffffffff9700000000000000000000000022e9ffffffffff8c030000000000000000000000000000000004e5fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000023ffffffffff670000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff2000000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047ffffffff2b00000000002bfffffffff1090000000000000000000000000076ffffffffb20000000000000000000000000000000069ffffffffffffffe8d4d7edfffffffffffff74500000000000000000000000000002be1ffffff4c000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000006bffffffffa00000000000000badffffffffffffffffffffffffffffffe9540000000000000004fdffffff4a0000000000000000fcffffffffffffb14c080000000f5ad4ffffffffffa9000000000000000031f3ffffffffee7f2a00000000267dedffffffffea1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8fffffe110000000000000000a0ffffff430000000000000000b0ffffffda0d0000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000000000091fffffffff72700000000000000000000000000000023f6ffffffffdf0c000000000000000000000006ccfffffffff95d00000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000e5ffffffff9a0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffd60000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000000000000000057edffffffffffffffffffffffffffffdd3b000000000000000000000000000065f2ffffffff4c000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000091ffffffff8800000000001bd0fffffffffffffce5d2d7ecffffffffffffff8100000000000000e7ffffff6e0000000000000000fcfffffffff85900000000000000000592ffffffffff53000000000000000047f2ffffffffffffefd8d6ecfffffffffffff13d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009fffffff620000000000000009ebfffffb0c000000000000000010dfffffffa900000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000000000009daffffffffc6020000000000000000000000000000bcfffffffffe4300000000000000000000000082ffffffffff690000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000bfffffffffbc0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000043c83c1daeff9e6d1ab651d000000000000000000000000000000000000000011f8ffffff72000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000000000000001894f3ffffffffffffffffffffe9810b000000000000000000000000000070ffffffed611400000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c00000000000000000000000000bfffffffff570000000005c8ffffffffffc55410000000001e69ccffffffffe90f000000000000bfffffff980000000000000000fcfffffffd4e00000000000000000000009fffffffffe103000000000000000026d2ffffffffffffffffffffffffffffd8270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffe11200000000000089ffffffbc0000000000000000000035f9ffffff6a000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000000000000000000000000000000000000155792bcddf0faf9eedab88b500f0000000000000000000000000000000000000039fdffffffff730000000000000000000000000060ffffffffff9800000000000000000000000020f7ffffffffa1000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000adffffffffd90000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa0030000000000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000078fffffff410000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b000000000000000000000000000000000000000f5b9acfe4f7f4e1c98f50070000000000000000000000000000001bf9ffffff44000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1d00000000000000000000000010f9ffffffff240000000090fffffffffa620000000000000000000043cefffb3f0000000000000093ffffffc30000000000000000fcffffffe80000000000000000000000000fe7ffffffff4f0000000000000000000564dfffffffffffffffffffffe87108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ddffffffd43f0100001a96ffffffff4700000000000000000000006ffffffff8320000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008afffffffff727000000000000000000000016edffffffffe00d0000000000000000000000009affffffffef0f000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000009affffffffe50000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000001bcafffffffffffffffffffffffffffffc7a0000000000000000000000000000000007e6ffffff9800000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffc600000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffa100000000000000000000000068ffffffffde0000000024fcfffffffe4e000000000000000000000000024e38000000000000000066fffffff50500000000000000fcffffffe8000000000000000000000000007bffffffffb50000000000000000000000043e86c3dcf2f6e1ca924a0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffffffeed2deffffffffffaf00000000000000000000000000adffffffdd0f0000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d4ffffffffc60200000000000000000000a7ffffffffff4300000000000000000000000014f8ffffffff8100000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000008cffffffffed0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa003000000000000000000000000000067fffffffb2300000000000000faffffffff120000000000000000000000000000008bffffffff820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffff9800000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffff82000000000000000000000fe8ffffffff7f000000009cffffffff920000000000000000000000000000000000000000000000002cffffffff3700000000000000fcffffffe8000000000000000000000000001efffffffff4030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ffffffffffffffffffffffce0f000000000000000000000000000fddffffffad000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033fbffffffff730000000000000000004affffffffff980000000000000000000000000069fffffffff51100000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000009bffffffffe40000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000004bfffffffff52b000000000000000000000094ffffffffd40100000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000000000000ae5ffffff9c0000000000000000f9ffffffff130000000000000000000000000000008cffffffff81000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000097ffffff8d00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffffffa309000000000000000ac0fffffffff81e0000000ef9fffffff61400000000000000000000000000000000000000000000000001eaffffff7600000000000000fcffffffe80000000000000000000000000000dfffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057e9fffffffffffffffda00b00000000000000000000000000000032f8ffffff6e00000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f0000000000000000000000000000000000000082fffffffff727000000000000000ce1ffffffffe10d00000000000000000000000000bbffffffffae0000000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000adffffffffd80000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff2000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000000000000079fffffff91e0000000000000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000085ffffffa100000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffd3ffffdb63110000000e5bddffffffffff81000000004bffffffff9f0000000000000000000000000000000000000000000000000000abffffffc300000000000000fcffffffe80000000000000000000000000000afffffffff620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e4f9edcf8b2d0000000000000000000000000000000000004de9fffff9350000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd7120000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff9203000000000000000000000000000000000000000005cfffffffffc60200000000000091ffffffffff440000000000000000000000000004f5ffffffff6a0000000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000bfffffffffbc0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000002bfffffffff1090000000000000000000000000076ffffffffb200000000004bfffffffff52b000000000000000000000094ffffffffd4010000000000000000000000e3ffffff8a000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000072ffffffb600000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff27c2fffffffee0d0e0faffffffffffffcd07000000008cffffffff5900000000000000000000000000000000000000000000000000005efffffffd15000000000000fcffffffe8000000000000000000000000000095ffffffff75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe0200000000000000000000000000000000000000000000000028effffffff9724b4fffffffb6900000000000000000000000000000000000000000000002ef9ffffffff73000000000036fdffffffff9900000000000000000000000000002fffffffffff3600000000000000000000000000000005a5ccccccccccccf9fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000e7ffffffff9a0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000006dffffffff9e00000000000000000000000000001bfffffffff10300000000c4ffffffff750000000000000000000000000be3ffffffff4d0000000000000000000000a2ffffe30b000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000000000000000000000000000000005cffffffff880000000000000000000000000000000000004effffffdb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0ca5ffffffffffffffffffffffffd0120000000000beffffffff1e00000000000000000000000000000000000000000000000000000ff9ffffff67000000000000fcffffffe8000000000000000000000000000086ffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000000000000000000000000000000000000000066fbffffffffffffffef44000000000000000000000000000000000000000000000000007bfffffffff72700000005d2ffffffffe10d000000000000000000000000000054ffffffffff1300000000000000000000000000000023fffffffffffffffffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000025ffffffffff650000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000adffffffff64000000000000000000000000000000dfffffffff350000002bfffffffff1090000000000000000000000000076ffffffffb20000000000000000000000005ee953000000000000000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000025fffffffd0a000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000d0ffffffff1c000057e8fffffffffffffffffb8c0c000000000000d2fffffffd03000000000000000000000000000000000000000000000000000000b3ffffffc9000000000000fcffffffe8000000000000000000000000000080ffffffff8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000000000000000000000000000000000042eeffffffffffdb28000000000000000000000000000000000000000000000000000003caffffffffc60200007bffffffffff4500000000000000000000000000000070fffffffffa0000000000000000000000000000000024fffffffffffffffffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000063ffffffffff290000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000d4ffffffff36000000000000000000000000000000b0ffffffff5b0000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000000000d000000000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000002f8ffffff35000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000085eabdcf5f7dfbf74200000000000000000e5ffffffea0000000000000000000000000000000000000000000000000000000051ffffffff2c0000000000fcffffffe800000000000000000000000000008dffffffff7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c01000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e0000000000000000000000000000000000000000000000000000000000000025808080807c130000000000000000000000000000000000000000000000000000000029f7ffffffff730026f7ffffffff9a000000000000000000000000000000007dfffffffff00000000000000000000000000000000024fffffffffffffffffffffff4000000000038ffffffffff24000000000000000000000000000000000000000000b4ffffffffd8000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000e8ffffffff200000000000000000000000000000009affffffff6f000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000d3ffffff62000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000000000000000000000000000000000000000f3fffffffffffffffffffffffffffffffffffffffffffff853000000000000000003e1ffffff9a0000000000fcffffffe800000000000000000000000000009bffffffff700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073fffffffff71fc0ffffffffe20e0000000000000000000000000000000085fffffffff00000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000027feffffffff7f000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000faffffffff120000000000000000000000000000008bffffffff82000000d4ffffffff36000000000000000000000000000000b0ffffffff5b0000000000000000000000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf0000000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000abffffff8f000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000000000000000000000000000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000000000000000078fffffff81800000000fcffffffe80000000000000000000000000000c1ffffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c3ffffffffd6ffffffffff4600000000000000000000000000000000007efffffffffa0000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000097fffffffff817000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000f9ffffffff130000000000000000000000000000008cffffffff81000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000038ffffffffff1c0000000000000000000000b3ffffffffea370000000000000000048afffffffffd420000000000000000000000000000000000000000000000005cffffffff88000000000000000000000000000000000000008affffffb6000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a00000000000000000010efffffff8a00000000fcffffffe80000000000000000000000000001eeffffffff270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff740000000000000000000000000000000000000000000063e3ffffbc00000070ffffffff7400000000000000000000000000000024f5ffffffffffffffff9b00000000000000000000000000000000000071ffffffffff1400000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000003cfcffffffff940000000000000000000000000000000000006afffffffffb0e00000000000000000000000000000000000000000000acffffff20000000e7ffffffff210000000000000000000000000000009affffffff6e000000faffffffff120000000000000000000000000000008bffffffff82000000000000000038ffffffffff1c000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000000368acce7fbf2d49f4e020000005cffffffff880000000000000000000000000000000000000079ffffffcb000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000aeffffffff260000000000000000000000000000daffffff76000000000000000000007bfffffff71c000000fcffffffe9000000000000000000000000003bfffffffff20100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000000047fdffffffbc00000070ffffffff74000000000000000000000000000000006cffffffffffffffe20e00000000000000000000000000000000000055ffffffffff3800000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000fe0ffffffffee1300000000000000000000000000000000000de5ffffffffff9300000000000000000000000000000000000000000000acffffff20000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000f9ffffffff130000000000000000000000000000008cffffffff81000000000000000038ffffffffff1c0000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000001fb2ffffffffffffffffffda4200005cffffffff880000000000000000000000000000000000000067ffffffde000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c0000000000000000000000000000000000000000006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000ceaffffff9d000000fcffffffff6f0000000000000000000000009affffffffaf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe0180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000001debffffffffbc00000070ffffffff740000000000000000000000000000000062ffffffffffffffa00000000000000000000000000000000000000031ffffffffff6d00000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000012c4ffffffffff5600000000000000000000000000000000000091fffffffffffffd33000000000000000000000000000000000000000000acffffff20000000aaffffffff66000000000000000000000000000000e1ffffffff32000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000000038ffffffffff1c0000000000000000000000000016c3fffffffffffffffffffffffffffffa71000000000000000000000032eefffffffffffffffffffffffe98055cffffffff880000000000000000000000000000000000000063ffffffe4000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c0000000000000000000000000000000000000000002affffffffb8000000000000000000000000002effffffff21000000000000000000000067fffffffb0c0000fcfffffffffd54000000000000000000002cfcffffffff4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000000000000000000000038ffffffff740000000000000000000000000000000000000006c8ffffffffffbc00000070ffffffff740000000000000000000000000000001ff2fffffffffffffffe4600000000000000000000000000000000000005f6ffffffffb500000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000023d8ffffffffff9200000000000000000000000000000000000031fcffffffffffffffcb020000000000000000000000000000000000000000acffffff200000006affffffffa200000000000000000000000000001dffffffffef02000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000038ffffffffff1c00000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000027eefffffffffffff4dad0e6ffffffffb766ffffffff880000000000000000000000000000000000000082ffffffd1000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c00000000000000000000000000000000000000000000c4fffffffe3500000000000000000000000090ffffffdb00000000000000000000000002c9ffffc2000000fcfffffffffffd7d01000000000000001cdeffffffffe205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000000000000000000000000010e5fffffff729000000000044ffffffffd20500000000000000000000000038ffffffff740000000000000000000000000000000000000093ffffffffffffbc00000070ffffffff74000000000000000000000000000001bfffffffffdbfcffffffe512000000000000000000000000000000000000c0fffffffff818000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000118bf8ffffffffffa902000000000000000000000000000000000002c9ffffffffb9ffffffff6c0000000000000000000000000000000000000000acffffff2000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000038ffffffffff1c0000000000000000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000001c1ffffffffffb83e030000001b72e7fffff1ffffffff8800000000000000000000000000000000000000cdffffffa80000000000000016ccccccccccccccccedffffffffd9cccccccccccccc03000000d0ffffffff1c000000000000000000000000000000000000000000004bffffffffd10d000000000000000000002cf6ffffff7a0000000000000000000000000032f07404000000fcfffffff2dcffffc650080000001870eeffffffffff51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed110000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a00000000000000000000000038ffffffff7400000000000000000000000000000000000057ffffffffffffffbc00000070ffffffff74000000000000000000000000000071fffffffffd36a5ffffffffaa0000000000000000000000000000000000006fffffffffff8b000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000124d9bf0ffffffffffff970200000000000000000000000000000000000069ffffffffce21fefffffff11800000000000000000000000000000000000000acffffff2000000000bfffffffff780000000000000000000000000de5ffffffff47000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffffff7e000000000000000014b4ffffffffffff880000000000000000000000000000000000005dffffffff6400000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c0000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d00000000000000000000000000000d0000000000fcffffffe81ddefffffffbdbd1e5feffffffffffffa500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000000000000000000000052ffffffffff7d00000000009cffffffffff3500000000000000000000000038ffffffff74000000000000000000000000000000000028f3ffffffffffffffbc00000070ffffffff740000000000000000000000000029f7ffffffff8d0019eeffffffff5d000000000000000000000000000000000019fafffffffff3140000000000000000000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccdd8edfffffffffffffffff25e0000000000000000000000000000000000000016efffffffff5300a8ffffffffa700000000000000000000000000000000000000acffffff200000000046fffffffff62d000000000000000000000098ffffffffcf000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffffffab000000000000000000000197ffffffffff88000000000000000000000000000000000a73faffffffee0c00000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d000000000000000000000000000000000000000000fcffffffe8001cc2ffffffffffffffffffffffffae04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000000000000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000000000038ffffffff74000000000000000000000000000000000bd5ffffffffffffffffbc00000070ffffffff7400000000000000000000000004cbffffffffdc0a00005cfffffffff01f0000000000000000000000000000000000a3ffffffffffb40100000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffffffca0190000000000000000000000000000000000000000a3ffffffffcd010027fbffffffff45000000000000000000000000000000000000acffffff200000000000b3ffffffffea370000000000000000048afffffffffd42000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000024fffffffffd21000000000000000000000002abffffffff880000000000000000000000000035c3d5f7ffffffffff6c0000000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c0000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d00000000000000000000000000000000000000000000fcffffffe800000275f3fffffffffffffffff16f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff480000000000000000000000000000000026baf1c63b0000000000000053d3efab180000000000000000000000000038ffffffff7400000000000000000000000000000000a5fffffffff4ebffffffbc00000070ffffffff740000000000000000000000007ffffffffffe4000000000afffffffffc0020000000000000000000000000000000028faffffffffff7d00000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffe58d2100000000000000000000000000000000000000000041fffffffffe3b00000090ffffffffdb080000000000000000000000000000000000acffffff20000000000011e0fffffffffd9c3d02000000115ad2ffffffffff800000000000000046fffffffff62d000000000000000000000098ffffffffcf0000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000068ffffffffc0000000000000000000000000005cffffffff880000000000000000000000000090ffffffffffffff9d000000000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd780000000000000038ffffffffff1c000000000000000000fcffffffe800000000116cb5e2f7f4dbb565130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff740000000000000000000000000000006affffffffff59e2ffffffbc00000070ffffffff74000000000000000000000033fbffffffff99000000000017ecffffffff7500000000000000000000000000000000008dfffffffffffe8201000000000000000000000000000000000000002a160000000000000038fffffffffffffffffffffffffffffef5e9ccaa7538020000000000000000000000000000000000000000000006d7ffffffffa2000000000fe8ffffffff800000000000000000000000000000000000acffffff200000000000002ae0fffffffffffff6ded3e8fdffffffffffff98020000000000000000b3ffffffffea370000000000000000048afffffffffd420000000000000000000038ffffffffff1c00000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000000009affffffff76000000000000000000000000005cffffffff880000000000000000000000000094fffffffffff17300000000000000000000000000000000000000a4ffffffff4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000000000035f9ffffffff9400edffffffbc00000070ffffffff740000000000000000000008d6ffffffffe30e00000000000058fffffffff92e0000000000000000000000000000000009d3ffffffffffffae150000000000000000000000000000000030bbfff02c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cfffffffff118000000000060fffffffff82500000000000000000000000000000000acffffff200000000000000016c3fffffffffffffffffffffffffffffa710000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000038ffffffffff1c00000000000000000000000000002cf8fffffff32300000046ffffffffe3100000000000000000caffffffff4b000000000000000000000000005cffffffff880000000000000000000000000094fff3e0b36f120000000000000000000000000000000000000000a4ffffffff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f330000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000000000000002872abd2eefafbf1d9b47e38000000000000000000000000005ddcfacc3d00000038ffffffff740000000000000000000000000012e1ffffffffc90600f0ffffffbc00000070ffffffff74000000000000000000008dffffffffff4c0000000000000000aaffffffffd3070000000000000000000000000000000027ecfffffffffffff4871200000000000000000000000037a7feffffffcf050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022f6ffffffff7100000000000001c6ffffffffbb00000000000000000000000000000000acffffff2000000000000000000155d8fffffffffffffffffffffda1210000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000000038ffffffffff1c000000000000000000000000000084ffffffffff7a000000a6ffffffffff560000000000000000e1ffffffff28000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000005bfffffffffb31000038ffffffff7400000000000000000000000001b6ffffffffec1e0000f0ffffffbc00000070ffffffff740000000000000000003ffdffffffffa500000000000000000014e9ffffffff8d000000000000000000000000000000000036effffffffffffffff8b3713d1c0a020b16355b95ddffffffffffffff65000000000000000000000000000000001a7bc3e4f9e8ce9b39000000000000000000000000000000000000000000000000b6ffffffffd4040000000000000033fdffffffff5a000000000000000000000000000000acffffff200000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000000000016c3fffffffffffffffffffffffffffffa710000000000000000000000000038ffffffffff1c000000000000000000000000000080ffffffffff75000000a2ffffffffff510000000000000000f0ffffffff1b000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c00000000000000002bc1ffffffffffffffffffffffffffffffffd7460000000000000000d1ffffffffffb0000038ffffffff740000000000000000000000007dfffffffffd48000000f0ffffffbc00000070ffffffff7400000000000000000ddfffffffffea140000000000000000000052fffffffffe4100000000000000000000000000000000002adfffffffffffffffffffffffffffffffffffffffffffffffffffa1040000000000000000000000000000000034ffffffffffffffff8b0000000000000000000000000000000000000000000054ffffffffff4100000000000000000099ffffffffe80f0000000000000000000000000000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000000000038ffffffffff1c000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000fdffffffff0f000000000000000000000000005cffffffff88000000000000000000003078bad8effae7d2b3743101000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000004ef2fffffffffffffffffffffffffffffffffffffd7500000000000000f4ffffffffffd1000038ffffffff74000000000000000000000044fdffffffff8100000000f0ffffffbc00000070ffffffff7400000000000000009cffffffffff58000000000000000000000000a7ffffffffe21000000000000000000000000000000000000fa4fffffffffffffffffffffffffffffffffffffffffffff76900000000000000000000000000000000000000a07f3e2f59e3ffffff4900000000000000000000000000000000000000000de4ffffffffa80000000000000000000013edffffffff950000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f170000000000000000000000000000000038ffffffffff1c0000000000000000000000000000003bc7f1be31000000000051d1f0b423000000000000000000f8ffffffff16000000000000000000000000005cffffffff88000000000000000047caffffffffffffffffffffffe37c0d00000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000d0ffffffffffad000038ffffffff74000000000000000000001beaffffffffba0200000000f0ffffffbc00000070ffffffff74000000000000004bffffffffffb10000000000000000000000000012e7ffffffffa50000000000000000000000000000000000000040caffffffffffffffffffffffffffffffffffffffb2220000000000000000000000000000000000000000000000000062ffffff8600000000000000000000000000000000000000008efffffffff41c000000000000000000000069fffffffffd3500000000000000000000000000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000e7ffffffff23000000000000000000000000005cffffffff880000000000000badffffffffffffffffffffffffffffffe954000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000038ffffffffff1c000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff69000000000055fffffffff92d000038ffffffff7400000000000000000005c5ffffffffe3140000000000f0ffffffbc00000070ffffffff7400000000000013e7fffffffff01a00000000000000000000000000004dffffffffff5800000000000000000000000000000000000000003ca4f1fffffffffffffffffffffffffff1a031000000000000000000000000000000000000000000000000000003a3ffffff6c000000000000000000000000000000000000002ffcffffffff7800000000000000000000000002ceffffffffcd03000000000000000000000000acffffff20000000000000000000000000004ffffff59c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000d3ffffffff3e000000000000000000000000005cffffffff8800000000001bd0fffffffffffffce5d2d7ecffffffffffffff810000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000002cf8fffffff32300000046ffffffffe31000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000056daf9c93700000038ffffffff7400000000000000000090fffffffffa39000000000000f0ffffffbc00000070ffffffff74000000000000aaffffffffff6400000000000000000000000000000000a2ffffffffee1c00000000000000000000000000000000000000000007427baccde8f4fdf6ebd2af804508000000000000000000000000000000000000000000000000002a5f8eddffffffd60c00000000000000000000000000000000000001c7ffffffffd906000000000000000000000000003afeffffffff6e000000000000000000000000acffffff200000000000000000000000000000b5ffffffa50100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000112000000000000000000000000000000000000080000000000000000a5ffffffff6e000000000000000000000000005cffffffff880000000005c8ffffffffffc55410000000001e69ccffffffffe90f00000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000084ffffffffff7a000000a6ffffffffff5600000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000095ffffffffffe53100000000000000000000000017caffffffffffc10000000000000000000000000038ffffffff74000000000000000055ffffffffff6e00000000000000f0ffffffbc00000070ffffffff7400000000005affffffffffbc000000000000000000000000000000000010e5ffffffffbc0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fffffffff1900f0000000000000000000000000000000000000067ffffffffff47000000000000000000000000000000a2fffffffff11a0000000000000000000000acffffff20000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000095da1a0000000000000000000000000000000015d474000000000000006bffffffffab000000000000000000000000005cffffffff880000000090fffffffffa620000000000000000000043cefffb3f0000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000080ffffffffff75000000a2ffffffffff5100000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000001cf8fffffffff42800000000000000000000000000000edcffffffffff4000000000000000000000000038ffffffff740000000000000026f2ffffffffa90000000000000000f0ffffffbc00000070ffffffff74000000001aeefffffffff52100000000000000000000000000000000000049ffffffffff6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035fffff64608000000000000000000000000000000000000000015eeffffffffaf0000000000000000000000000000000018f1ffffffffaa0000000000000000000000acffffff2000000000000000000000000000000082ffffffff6d000000000000000000000000000000000090fffff791020000000000059bf9ffff640000000000000000000000000038ffffffffff1c00000000000000000091ffffd818000000000000000000000000000014d2ffff7400000000000029fffffffff80f0000000000000000000000005cffffffff8800000024fcfffffffe4e000000000000000000000000024e38000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c00000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000008bffffffffff620000000000000000000000000000000034fdffffffffb700000000000000000000000038ffffffff740000000000000ad3ffffffffd80c0000000000000000f0ffffffbc00000070ffffffff7400000000b7fffffffff55d000000000000000000000000000000000000000082f9fffffff72a0000000000000000000000000000033e7cafd3edf8fcf2e5c5a067240000000000000000000000000000000000000000000000000000000000000001e5ffff27000000000000000000000000000000000000000000a1fffffffff620000000000000000000000000000000000073ffffffffff4700000000000000000000acffffff2000000000000000000000000000000009dffffffffd530000000000000000000000000000000002adffffffaa0600000009b5ffffff83000000000000000000000000000038ffffffffff1c000000000000000011deffffffd61600002174abc3c1a66b19000013d1ffffffe912000000000000c3ffffffff8400000000000000000000000063ffffffff880000009cffffffff9200000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000014495d1e8fbf4d8a65b08000000000000000000000000000000003bc7f1be31000000000051d1f0b4230000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff9500000000e0ffffffffda020000000000000000000000000000000000aefffffffffb12000000000000000000000038ffffffff74000000000000a2fffffffff42b000000000000000000f0ffffffbc00000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e8de8ffffffffffffffffffffffffffc960030000000000000000000000000000000000000000000000001562a1d5f6fffffffdf4e6c69f652000000000000000000000000000003fffffffffff7e00000000000000000000000000000000000004d5ffffffffdc08000000000000000000acffffff20000000000000000000000000000000004ffffffffff73c0000000000000000000000000000000009c7ffffffb80a000dc0ffffffa200000000000000000000000000000038ffffffffff1c00000000000000000021e3ffffffd434a9fdfffffffffffffa9e29cfffffffed2e0000000000000057fffffffff9320000000000000000000018e1ffffffff8800000ef9fffffff61400000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8002ec4ffffffffffffffffffe85c0000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000023ffffffffff6d0000000000000000000000000000000000003effffffffff50000000000000000000000038ffffffff74000000000067ffffffffff5b00000000000000000000f0ffffffbc00000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001194faffffffffffffffffffffffffffffffffffd7450000000000000000000000000000000000000000003fb2fcfffffffffffffffffffffffffffec253010000000000000000000005d6ffffffffdc080000000000000000000000000000000000000042feffffffff83000000000000000000acffffff200000000000000000000000000000000000b3ffffffffee290000000000000000000000000000000014dbffffffc421caffffffbd0500000000000000000000000000000038ffffffffff1c0000000000000000000025e7ffffffffffffffffffffffffffffffffffffef32000000000000000001c3ffffffffec37000000000000000024d7ffffffffff8800004bffffffff9f0000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe84cf6ffffffffffffffffffffffffb50b000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000056ffffffffff2600000000000000000000000000000000000004f3ffffffff85000000000000000000000038ffffffff740000000033f8ffffffff960000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000000044e8fffffffffffffffffffffffffffffffffffffffffe9104000000000000000000000000000000000018a9ffffffffffffffffffffffffffffffffffffffcc340000000000000000007affffffffde2e00000000000000000000000000000000000000000075f5fffffff9270000000000000000acffffff20000000000000000000000000000000000017c2fbffffffe0190000000000000000000000000000000024ebfffffffaffffffd30f0000000000000000000000000000000038ffffffffff1c00000000000000000000002bebfffffffffffffffffffffffffffffffff1360000000000000000000025f6fffffffffd9837010000002e8cf5ffffffffffff8800008cffffffff590000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffafbfffffffae2d1e4fcffffffffffffc10c0000000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa7000000000000000000000038ffffffff7400000011dfffffffffcb060000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000006efdffffffffffffffffffffffffffffffffffffffffffffffb90c0000000000000000000000000000005eeffffffffffffffffffffffffffffffffffffffffffffc79010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000039f6ffffffffffe51d000000000000000000000000000000000038ffffffffff1c0000000000000000000000004ffffffffff488310a0d368ff7ffffffff5000000000000000000000000046f6fffffffffffff3dbd7f2ffffffffc5fdffffff880000beffffffff1e0000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffffffffb14c080000000f5ad4ffffffffffaa0000000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000037ffffff3900000038ffffffff74000001b3ffffffffed1f000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000074ffffffffffffffffe19a532e180406122a5d99dfffffffffffffbd070000000000000000000000000077ffffffffffffffe79f562f180406122a5e9be2ffffffffffffa20300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000052fdfffffff23000000000000000000000000000000000000038ffffffffff1c000000000000000000000000b2ffffffd32100000000000027dbffffff9f0000000000000000000000000043ebffffffffffffffffffffffffbe0be2ffffff880000d2fffffffd030000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffff85900000000000000000592ffffffffff5300000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff61000000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000054ffffff5500000038ffffffff7400007afffffffffe4a00000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000053feffffffffffffd45201000000000000000000000254cdfffffffff53000000000000000000000000082ffffffffffffdf5d0200000000000000000000045ed8fffffffff831000006d8ffee8b0200000000000000000000000000000000000000000000000000000000000000004796d1ebfcff140000acffffff2000000000000000000000043c83c1daeff9e6d1ab651d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c00000000000000000000002cffffffe418000000000000000021eefffffc1b00000000000000000000000000139ffefffffffffffffffff6760400bfffffff880000e5ffffffea000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffd4e00000000000000000000009fffffffffe203000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000070ffffff7000000038ffffffff740042fcffffffff830000000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000001df0fffffffffffd77020000000000000000000000000000037dfcfff7430000000000000000000000005dffffffffffff8b0600000000000000000000000000000795fffffc510000000044ffffff780000000000000000000000000000000000000000000000000000000000002bcbffffffffffff14000000000000000000000000000000025edefffffffffffffffffffffeaa27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000083ffffff5d0000000000000000000071ffffff6f000000000000000000000000000000237dbee6f8f4dbbb6c160000005af7ffff880000f3fffffffffffffffffffffffffffffffffffffffffffff853000000005a992f000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000fe7ffffffff51000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000088ffffff8700000038ffffffff701ae8ffffffffbc020000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000b3fffffffffff34b00000000000000000000000000000000000039a9410000000000000000000000001ff1fffffffffb6400000000000000000000000000000000000054c957000000000000abfffff6200000000000000000000000000000000000000000000000000000000041f4ffffffffffffff0f00000000000000000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000bedfffffa9e00000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000bdfffff5080000000000000000000013fcffffa80000000000000000000000000000000000000000000000000000000000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000054fffff6570000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000007bffffffffb7000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe0200000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000009dffffff9d00000038ffffffff6cc3ffffffffe415000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000040fffffffffffe5000000000000000000000000000000000000000000000000000000000000000000000c0ffffffffff6d000000000000000000000000000000000000000000000000000000001cf4ffffb10000000000000000000000000000000000000000000000000000001aecffffffffffe3cd8f00000000000000000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000082ffffffff4f000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000d7ffffd1000000000000000000000000e0ffffc10000000000000000000000000000000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a000022f0ffffffff8201000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000001efffffffff4040000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000afffffffae00000038ffffffffdafffffffffa3a00000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000baffffffffff860000000000000000000000000000000000000000000000000000000000000000000044ffffffffffaa00000000000000000000000000000000000000000000000000000000000076ffffff4c000000000000000000000000000000000000000000000000000094ffffffffbb2a0000000000000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000000000000000000015f6ffffffbf000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000d6ffffce000000000000000000000000dbffffc2000000000000000000000000003078bad8effae7d2b374310100000000000000000000aeffffffff260000000000000000000000000000daffffff76000013c2ffffffffffab0a0000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000dfffffffff330000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a00000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000bdffffffbc00000038ffffffffffffffffff700000000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000026feffffffffe10600000000000000000000000000000000000000000000000000000000000000000000b6fffffffff21200000000000000000000000000000000000000000000000000000000000005d6ffffdd0800000000000000000000000000000000000000000000000004f3ffffffc3040000000000000000000000000000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000000000000095ffffffff2f0000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000bdffffef03000000000000000000000af8ffffa9000000000000000000000047caffffffffffffffffffffffe37c0d00000000000000006effffffff5f0000000000000000000000000001f1ffffff5e00000006a3ffffffffffcc1b00a1ffffffff4000000000000000000000fcffffffe80000000000000000000000000000afffffffff620000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c8ffffffc800000038ffffffffffffffffab000000000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000007cffffffffff66000000000000000000000000000000000000000000000000000000000000000000002afeffffffff87000000000000000000000000000000000000000000000000000000000000000041ffffff8000000000000000000000000000000000000000000000000038ffffffff3e00000000000000000000000000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000021fcffffff9d0000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000083ffffff48000000000000000000005cffffff6f0000000000000000000badffffffffffffffffffffffffffffffe954000000000000002affffffffb8000000000000000000000000002effffffff2100000000007fffffffffffe5359affffffff4000000000000000000000fcffffffe8000000000000000000000000000095ffffffff760000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ceffffffcd00000038ffffffffffffffd90d000000000000000000000000000000000000f0ffffffbc0000000a93eff29f1200000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000c9ffffffffe9050000000000000000000000000000000000000000000000000000000000000000000086fffffffff815000000000000000000000000000000000000000000000000000000000000000000a8fffff722000000000000000000000000000000000000000000000058fffffff5030000000000000000000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000000000000000000a7fffffff71500000000000000000000000000000000000000000038ffffffffff1c000000000000000000000029ffffffd00800000000000000000eddfffffb1b00000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff8100000000000000c4fffffffe3500000000000000000000000090ffffffdb000000000000005bf8fffffffff6d2ffffffff4000000000000000000000fcffffffe8000000000000000000000000000086ffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d2ffffffd200000038fffffffffffff52c00000000000000000000000000000000000000f0ffffffbc000000b7ffffffffce05000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000008faffffffff980000000000000000000000000000000000000000000000000000000000000000000000d0ffffffffb2000000000000000000000000000000000000000000000000000000000000000000001af2ffffb4000000000000000000000000000000000000000000000067ffffffe000000000000000000000000000000000002bfffffffff1090000000000000000000000000076ffffffffb200000000000000000000000030ffffffff7b00000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000afffffffaf090000000000000dbbffffff9c000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000000000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000003cecffffffffffffffffff4000000000000000000000fcffffffe8000000000000000000000000000080ffffffff8d0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffffff5d0000000000000000000000000000000000000000f0ffffffbc000043ffffffffffff62000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000035ffffffffff58000000000000000000000000000000000000000000000000000000000000000000000bfdffffffff6c000000000000000000000000000000000000000000000000000000000000000000000073ffffff4f0000000000000000000000000000000000000000000058ffffffe900000000000000000000000000000000006dffffffff9e00000000000000000000000000001bfffffffff103000000000000000000000000baffffffe505000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000005fffffffffd7540700000a5bdcffffffff31000000000000000090fffffffffa620000000000000000000043cefffb3f0000000000000000b6ffffffffc218000000000000000029dfffffffed0d00000000000000000024d9ffffffffffffffff4000000000000000000000fcffffffe800000000000000000000000000008dffffffff7e0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffff99000000000000000000000000000000000000000000f0ffffffbc000066ffffffffffff88000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000057ffffffffff270000000000000000000000000000000000000000000000000000000000000000000039ffffffffff37000000000000000000000000000000000000000000000000000000000000000000000004d4ffffdf0900000000000000000000000000000000000000000043fffffffa0000000000000000000000000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000043ffffffff59000000000000000000000000000000000000000038ffffffffff1c00000000000000000000003af4fffffffffffff5d7daf8ffffffffffffd81500000000000024fcfffffffe4e000000000000000000000000024e3800000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d000000000000000000000012c0ffffffffffffff4000000000000000000000fcffffffe800000000000000000000000000009bffffffff6f0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffcc07000000000000000000000000000000000000000000f0ffffffbc00003fffffffffffff5e000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000073fffffffffe07000000000000000000000000000000000000000000000000000000000000000000005affffffffff130000000000000000000000000000000000000000000000000000000000000000000000003fffffff8300000000000000000000000000000000000000000026ffffffff0e00000000000000000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b00000000000000000000000000ccffffffc9000000000000000000000000000000000000000038ffffffffff1c000000000000000000002fefffffffffffffffffffffffffffffffffffffce0f00000000009cffffffff9200000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d0000000000000000000000000006a1ffffffffffff4000000000000000000000fcffffffe80000000000000000000000000000c1ffffffff580000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003effff91000000001679cef8f2bb3f00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038fffffdce1d00000000000000000000000000000000000000000000f0ffffffbc000000b3ffffffffcc04000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000007ffffffffff5000000000000000000000000000000000000000000000000000000000000000000000074fffffffffa0000000000000000000000000000000000000000000000000000000000000000000000000000a4fffff824000000000000000000000000000000000000000003f7ffffff3700000000000000000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f0000000000000000000000000056ffffffff38000000000000000000000000000000000000000000000000000000000000000000000025e9ffffffd24fd8ffffffffffffffffcb64f4ffffffc3090000000ef9fffffff6140000000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd78000000000000000000000000000000007cfeffffffff4000000000000000000000fcffffffe80000000000000000000000000001eeffffffff260000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017fffff04008359ff9fffffffffffc4f000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000a8fedf19c1100000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000085ffffffffee000000000000000000000000000000000000000000000000000000000000000000000080fffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000018f1ffffb7000000000000000000000000000000000000000000cdffffff6300000000000000000000000000000000faffffffff120000000000000000000000000000008bffffffff82000000000000000000000000005effffffffa7000000000000000000000000000000000000000000000000000000000000000000001be1ffffffd616000351a5def6f4da9e4501003ef5ffffffb60400004bffffffff9f0000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a00000000000000000000000000000000000059f8ffffff4000000000000000000000fcffffffe9000000000000000000000000003bfffffffff0010000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffffffffffffffffffffffffe7060000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000007dfffffffff5000000000000000000000000000000000000000000000000000000000000000000000085fffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffff5200000000000000000000000000000000000000009fffffff8e00000000000000000000000000000000f9ffffffff130000000000000000000000000000008cffffffff8100000000000000000000000000cefffffffffb1b00000000000000000000000000000000000000000000000000000000000000000009bcffffd919000000000000000000000000000041f5ffff9d0100008cffffffff5900000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f33000000000000000000000000000000000000000000000000000000000000000000000000fcffffffff6f0000000000000000000000009affffffffac000000fcffffffe800000000000000000000000000b5ffffffff32000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028edfffffffffffffff5d6e3ffffff410000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc0000000070ffffffffff09000000000000000000000000000000000000000000000000000000000000000000007cfffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000003d1ffffe10a0000000000000000000000000000000000000070ffffffba00000000000000000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e00000000000000000000000040ffffffffffff85000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000009b9dd1c0000000000000000000000000000000042f6a302000000beffffffff1e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffffffd54000000000000000000002cfcffffffff4c000000fcffffffe800000000000000000000000000c2ffffffff23000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022a3e9f8e1b97a370300007fffff660000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000003effff91000000001679cef8f2bb3f000000000000000000000000091d0000000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc0000000053ffffffffff2a000000000000000000000000000000000000000000000000000000000000000000006fffffffffff150000000000000000000000000000000000000000000000000000000000000000000000000000003cfeffff860000000000000000000000000000000000000044ffffffe400000000000000000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000000000000b0ffffffffffffeb08000000000000000000000010e5fffffff729000000000044ffffffffd20500000000081b000000000000000000000000000000000000300300000000d2fffffffd0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003078bad8effae7d2b374310100000000000000fcfffffffffffd7d01000000000000001cdeffffffffdf04000000fcffffffe800000000000000000000000000e1ffffffff10000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000017fffff04008359ff9fffffffffffc4f0000000000000000000000bae72e00000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc000000002effffffffff5d0000000000000000000000000000000000000000000000000000000000000000000051ffffffffff3b00000000000000000000000000000000000000000000000000000000000000000000000000000000a1fffff9260000000000000000000000000000000000002bfffffffc01000000000000000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000000000023fdffffffffffffff63000000000000000000000056ffffffffff820000000000a0ffffffffff3a000000000000000000000000000000000000000000000000000000000000e5ffffffea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047caffffffffffffffffffffffe37c0d0000000000fcffffffb6dcffffc650080000001870eeffffffffff4b00000000fcfffffff72e00000000000000000000001fffffffffe300000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000beffffffffffffffffffffffffffe70600000000000000000003e6ffe822000000000038ffffffffffd3ccccccccccccccccccccccccccccccccccccccccecffffffffbc0000000003f3ffffffffa0000000000000000000000000000000000000000000000000000000000000000000002cffffffffff710000000000000000000000000000000000000000000000000000000000000000000000000000000016efffffba00000000000000000000000000000000000014ffffffff100000000000000000000000000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000000000092ffffffffc7ffffffd2000000000000000000000052ffffffffff7d00000000009cffffffffff35000000000000000000000000000000000000000000000000000000000000f3fffffffffffffffffffffffffffffffffffffffffffff85300000000000000000000000000000000003eddffffaa00000000000000000000000000000badffffffffffffffffffffffffffffffe95400000000fcffffff811ee1fffffffbdbd1e5feffffffffffff9f0000000000fcffffffffed350000000000000000000089ffffffffa800000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000004b9f4750000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000028edfffffffffffffff5d6e3ffffff410000000000000000000034f6ffcf080000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000b9ffffffffef0a00000000000000000000000000000000000000000000000000000000000000000002f1ffffffffbb00000000000000000000000000000000000000000000000000000000000000000000000000000000006dffffff55000000000000000000000000000000000011ffffffff1a00000000000000000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000000000ff3ffffffec40ffffffff41000000000000000000000de1fffffff52400000000003dfeffffffcb03000000000000000000003078bad8effae7d2b37431010000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff910000000000000000000000000000000034f4fffff31b000000000000000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff81000000fcffffff65001cbfffffffffffffffffffffffffa9030000000000fcfffffffffff77101000000000000003efaffffffff4e00000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000048ffffee0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000000022a3e9f8e1b97a370300007fffff66000000000000000000000067ffff840000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000066ffffffffff7600000000000000000000000000000000000000000000000000000000000000000000b5fffffffffb1e0000000000000000000000000000000000000000000000000000000000000000000000000000000003ceffffe30b000000000000000000000000000000003bfffffff60500000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff47000000000000000000000074ffffffff9701ddffffffb0000000000000000000000026baf1c63b0000000000000053d3efab1800000000000000000047caffffffffffffffffffffffe37c0d000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a00000000000000000000000000000023e9ffffff730000000000000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000fcffffff4800000278f3ffffffffffffffffef6902000000000000fcfffffffdffffffca570c000000177bf6ffffffffdb0200000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000072ffffff1100000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000c5fff81b00000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000012f6ffffffffec0d00000000000000000000000000000000000000000000000000000000000000000062ffffffffff97000000000000000000000000000000000000000000000000000000000000000000000000000000000039feffff8900000000000000000000000000000000b3ffffffa7000000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf000000000000000000000003e1ffffffff2d0076fffffffd22000000000000000000000000000000000000000000000000000000000000000000000badffffffffffffffffffffffffffffffe9540000000000aeffffffff260000000000000000000000000000daffffff76000000000000000000000000000015dbffffffd3040000000000000000000000000090fffffffffa620000000000000000000043cefffb3f000000fcffffd10b00000000136cb5e2f7f4dab462110000000000000000fcffffffe867fcfffffffcddd0e2fefffffffffffd3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000008dffffff2c00000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffff8700000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000096ffffffffffa100000000000000000000000000000000000000000000000000000000000000000010f3fffffffff91d00000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffa29000000000000000000000000001c99ffffffe81d000000000000000000000000000000000000b3ffffffffea370000000000000000048afffffffffd42000000000000000000000056ffffffffbf000013f7ffffff8e0000000000000000000000000000000000000000000000000000000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff81000000006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000000000bcafffffffe3d0000000000000000000000000024fcfffffffe4e000000000000000000000000024e3800000000000000000000000000000000000000000000000000000000000000fcffffffe8004eecfffffffffffffffffffffffe6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000a8ffffff4700000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000000000003eaffe100000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000001df5ffffffffff7000000000000000000000000000000000000000000000000000000000000000000090ffffffffffc1040000000000000000000000000000000000000000000000000000000000000000000000000000000015eeffffbd000000000000000000000000c2ffffffffd5220000000000000000000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000000c7ffffffff52000000a1fffffff10c00000000000000001d78a6d1e5f5f9e5cfa25a12000000000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000002affffffffb8000000000000000000000000002effffffff2100000000000000000000000004b5ffffffffa000000000000000000000000000009cffffffff920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffe8000014a2feffffffffffffffffe14f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000c2ffffff6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc610300000000000000000000001dafefffffff22000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000007bfffffffffffc73000000000000000000000000000000000000032b05000000000000000000000019f3ffffffffff8e00000000000000000000000000000000000000000000000000000000000000000000000000000000006affffff580000000000000000000000ccffffff8b020000000000000000000000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000000037ffffffffe00300000037ffffffff6c000000000000000046fffffffffffffffffffff6880f00000000000000000090fffffffffa620000000000000000000043cefffb3f0000000000c4fffffffe3500000000000000000000000090ffffffdb000000000000000000000000009dffffffffee16000000000000000000000000000ef9fffffff6140000000000000000000000000000000000000000d0ffffffff1c00000000000000000000000fb2f8ffffff8a000000fcffffffe8000000002783c3eafaf1dbab5e0800000000000000000024e2fffff7b8250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000004d1ffffffffff49000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000004c4ffffffffffffa60f0000000000000000000000000000003dd5ffb502000000000000000000000076ffffffffffff8f0300000000000000000000000000000000000b460d0000000000000000000000000000000000000002ccffffe50d00000000000000000000ccffffffffc01500000000000000000000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000000000000000a8ffffffff760000000000ccffffffda01000000000000002cffffffffffffffffffffffffe7330000000000000024fcfffffffe4e000000000000000000000000024e380000000000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000000000000082fffffffee14700000000000000000000000000004bffffffff9f000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000004beffffffffbb03000000fcffffffe800000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff700000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000033ffffffffffff4c000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000001be2ffffffffffffef7f0f000000000000000000000029a7ffffffff7f000000000000000000000003c1ffffffffffffb8190000000000000000000000000000004ee4ffc5040000000000000000000000000000000000000036feffff8c000000000000000000000530aeffffffda120000000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000000001dfbfffffff612000000000062ffffffff4b000000000000000bf7fffffffffffffffffffffffff4430000000000009cffffffff920000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d0000000000000000000000000000000000000000000000000000000000000000008cffffffff59000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000095ffffffffdf1300000000fcffffffe8000000000000000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000000000000000038ffffffffff1c00000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000003bffffffffffff24000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000029e8fffffffffffffff5ac6b381808030c24497fc8fffffffffffffd25000000000000000000000019e0fffffffffffff68b14000000000000000000000033b4ffffffff8900000000000000000000000000000000000000009bfffffb2b000000000000000000000001c3ffffff93000000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f170000000000000000000000000000008affffffff9b00000000000009eeffffffba000000000000000048703d1103102d6fd8ffffffffffea18000000000ef9fffffff614000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d00000000000000000000000000000000000000000000000000000000000000000000beffffffff1e000000000000000000000000000000000000000000d0ffffffff1c00000000000000000066fffffffff6310000000000fcffffffe8000000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff7000000000000000000000000db5ffffffe64800000067f4ffffff920300000000000000000038ffffffffff1c00000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000007d8ffffffffb000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000000000021d7fffffffffffffffffffffffffffffffffffffffffffffffd6c0000000000000000000000000027e6fffffffffffffff8b16d3a1808030c244a83cffffffffffffffe250000000000000000000000000000000000000013edffffc000000000000000000000000047ffffffed010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000befffffffff2e000000000000008dffffffff2a0000000000000000000000000000000383ffffffffffb1000000004bffffffff9f000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000d2fffffffd03000000000000000000000000000000000000000000d0ffffffff1c00000000000000003efaffffffff5c000000000000fcffffffe800000000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000000000028effffffff9724b4fffffffb69000000000000000000000038ffffffffff1c0000000018e8fffffffffff4780900000000000000000159e2fffffffffff9360000000000001eaaebef960a00000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000b9cffffffffffffffffffffffffffffffffffffffffffea440000000000000000000000000000001ed4fffffffffffffffffffffffffffffffffffffffffffffffc6800000000000000000000000000000000000000000066ffffff5b000000000000000000000019ffffffff160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cffffffffc0000000000000000024feffffff98000000000000000000000000000000000089ffffffffff2c0000008cffffffff5900000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd7800000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000e5ffffffea00000000000000000000000000000000000000000000d0ffffffff1c000000000000001feaffffffff9000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000000000000066fbffffffffffffffef4400000000000000000000000038ffffffffff1c0000000095ffffffffffe53100000000000000000000000017caffffffffffc100000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000000000003cc9fffffffffffffffffffffffffffffffffffea01400000000000000000000000000000000000a98ffffffffffffffffffffffffffffffffffffffffffe8420000000000000000000000000000000000000000000002c9ffffe70e000000000000000000000effffffff16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dbffffffff53000000000000000000b9fffffff5120000000000000000000000000000000007ddffffffff98000000beffffffff1e000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a0000000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000f3fffffffffffffffffffffffffffffffffffffffffffff8530000d0ffffffff1c0000000000000bd1ffffffffc00400000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff7000000000000000000000000000000042eeffffffffffdb280000000000000000000000000038ffffffffff1c0000001cf8fffffffff42800000000000000000000000000000edcffffffffff40000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000000000000000000003fa9f5fffffffffffffffffffffffff7a52d00000000000000000000000000000000000000000039c6fffffffffffffffffffffffffffffffffffd9e1200000000000000000000000000000000000000000000000033fdffff8f0000000000000000000024ffffffff0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffffffe2030000000000000000004effffffff76000000000000000000000000000000000079ffffffffe9000000d2fffffffd030000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f3300000000000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff910000d0ffffffff1c000000000001adffffffffe3160000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff700000000000000000000000000000000025808080807c13000000000000000000000000000038ffffffffff1c0000008bffffffffff620000000000000000000000000000000034fdffffffffb7000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000a4984b2d3ecf7fcf1e1bf955510000000000000000000000000000000000000000000000000003ba6f3fffffffffffffffffffffffff7a42c00000000000000000000000000000000000000000000000000000098fffffb2d0000000000000000003afffffff1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffffff780000000000000000000002e0ffffffe2030000000000000000000000000000000027ffffffffff230000e5ffffffea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a0000d0ffffffff1c000000000081fffffffff835000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000e0ffffffffda020000000000000000000000000000000000aefffffffffb120000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094782b2d3ecf7fcf1e1bf955510000000000000000000000000000000000000000000000000000000000011ebffffc200000000000000000060ffffffcd00000000000000000000000000000000000000000077ffff9f00000000117cd6f9e7991800000000000000000000002ffffffffff713000000000000000000000079ffffffff540000000000000000000000000000000001f2ffffffff5a0000f3fffffffffffffffffffffffffffffffffffffffffffff85300000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000aeffffffff260000000000000000000000000000daffffff760000d0ffffffff1c0000000054feffffffff6200000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000023ffffffffff6d0000000000000000000000000000000000003effffffffff500000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063ffffff5e00000000000000008dffffffa40000000000000000000000000000000000000000005bffffed20000c7cf2ffffffffffe31e00000000000000000000a0ffffffff9d00000000000000000000000015f9ffffffc30000000000000000000000000000000000cfffffffff750000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000000000000000006effffffff5f0000000000000000000000000001f1ffffff5e0000d0ffffffff1c00000030f5ffffffff970000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000000000000000000002872abd2eefafbf1d9b47e38000000000000000000000000000000000000000038ffffffffff1c000056ffffffffff2600000000000000000000000000000000000004f3ffffffff850000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000038ffffffff740000000000000000000000000000000000000000000063e3ffffbc0000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c7ffffe80f00000000000000b9ffffff7a0000000000000000000000000000000000000000001efefffff9d6f4ffffffffffffffffb700000000000000000018f9ffffffff2f00000000000000000000000000a5ffffffff3300000000000000000000000000000000c1ffffffff860000cfffffffffffffffffffffffffffffffffffffffffffffff8a000000000000000000000000004ffffff59c06000000000000000000000038ffffffffff2000000000000000000000000000000000000000000000002affffffffb8000000000000000000000000002effffffff210000d0ffffffff1c000016e1ffffffffc5050000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc6103000000000000000000000000000000000038ffffffffff1c000079ffffffffe90000000000000000000000000000000000000000bdffffffffa700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000000047fdffffffbc0000acffffff200000097c7e5f1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031fcffff9200000000000000e6ffffff5000000000000000000000000000000000000000000000adfffffffffffffffff5d5f6ffffff25000000000000000082ffffffffc200000000000000000000000000003affffffffa100000000000000000000000000000000b5ffffffff970000aeffffffff260000000000000000000000000000daffffff760000000000000000000000000000b5ffffffa5010000000000000000000038ffffffffff20000000000000000000000000000000000000000000000000c4fffffffe3500000000000000000000000090ffffffdb000000d0ffffffff1c0224c8ffffffffe619000000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd7460000000000000000000000000000000038ffffffffff1c00008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000001debffffffffbc0000acffffff200000007cffffed3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cfffffc2f000000000011ffffffff270000000000000000000000000000000000000000000018dbfffffffffff4820f0017dfffff630000000000000008eaffffffff54000000000000000000000000000000cffffffff917000000000000000000000000000000b4ffffffff9c00006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000000000023f8ffffff8a0000000000000000000038ffffffffff200000000000000000000000000000000000000000000000004bffffffffd10d000000000000000000002cf6ffffff7a000000d0fffffffffffffffffffffffa3b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd7500000000000000000000000000000038ffffffffff1c000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000000000000000000000000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000038ffffffff740000000000000000000000000000000000000006c8ffffffffffbc0000acffffff2000000001b9ffffee2100003384bae2f4fae7d2ae6a2200000000000000000000000000000000000000000000000000000000000000000000000000000000048cefffc5010000000036ffffffff060000000000000000000000000000000000000000000000128ee2f9db83130000000085ffff7e0000000000000064fffffffdad020000000000000000000000000000003becffffff7f000000000000000000000000000000b4ffffffff9c00002affffffffb8000000000000000000000000002effffffff2100000000000000000000000000000082ffffffff6d00000000000000000038ffffffffff2000000000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d000000d0ffffffffffffffffffffff68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000000038ffffffff740000000000000000000000000000000000000093ffffffffffffbc0000acffffff200000000015e5ffffce50cfffffffffffffffffffffffb4310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cfffffff50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4ffffffff9c000000c4fffffffe3500000000000000000000000090ffffffdb0000000000000000000000000000000009dffffffffd53000000000000000038ffffffffff200000000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d00000000d0ffffffffffffffffffffb701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff690000000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000038ffffffff7400000000000000000000000000000000000057ffffffffffffffbc0000acffffff2000000000003dfcfffffffffffffffffffffffffffffffffe8d02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fffffffe50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4ffffffff9c0000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000000000000000000000004ffffffffff73c0000000000000038ffffffffff2000000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d0000000000d0ffffffffd1d3f9ffffffff9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000018e8fffffffffff4780900000000000000000159e2fffffffffff93600000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000038ffffffff74000000000000000000000000000000000028f3ffffffffffffffbc0000acffffff2000000000000081fffffffffffffff2d7d1e6fcffffffffffffb6090000000000000000000000000000000000b0ffdf1f00000000000000000000000000000000000000000000000065ffffffe20000000000000000001ac4fafff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff3400000040fffffffffffffffffffff4000000000000000000000000000000b4ffffffff9c00000000b6ffffffffc218000000000000000029dfffffffed0d000000000000000000000000000000000000b3ffffffffee2900000000000038ffffffffff200000000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd78000000000000d0ffffffff1c0023dfffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000095ffffffffffe53100000000000000000000000017caffffffffffc100000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff960000000000000038ffffffff74000000000000000000000000000000000bd5ffffffffffffffffbc0000acffffff20000000000006c8fffffffff3862b010000000f58caffffffffffa00000000000000000000000000000000000a1ffff7200000000000000000000000000000000000000000000000052fffffff907000000000000000089fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff3400000040fffffffffffffffffffff4000000000000000000000000000000b4ffffffff9c0000000014e3ffffffffec7f27000000002686f4ffffffff5d0000000000000000000000000000000000000017c2fbffffffe019000000000038ffffffffff2000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a00000000000000d0ffffffff1c000024e8ffffffff7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000001cf8fffffffff42800000000000000000000000000000edcffffffffff40000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000038ffffffff7400000000000000000000000000000000a5fffffffff4ebffffffbc0000acffffff20000000000097ffffffffffcf0800000000000000016ffdffffffff610000000000000000000000000000000092ffff870000000000000000000000000000000000000000000000002affffffff4b0000000000000000a3fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000a28282853ffffff79282826000000000000000000000000000000b4ffffffff9c00000000002de3ffffffffffffefd8d4ebffffffffffff8d00000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f33000000000000000000d0ffffffff1c0000002eefffffffff63000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000008bffffffffff620000000000000000000000000000000034fdffffffffb7000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000016a6f3ee910b000000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000038ffffffff740000000000000000000000000000006affffffffff59e2ffffffbc0000acffffff200000000030ffffffffffffff9f00000000000000000065ffffffffe60700000000000000000000000000000083ffff9600000000000000000000000000000000000000000000000000e8ffffffd10800000000000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000001bcafffffffffffffffffffffffffffd780000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000003af5fffffffc520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000e0ffffffffda020000000000000000000000000000000000aefffffffffb120000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000004ceffffffffb4000000000095ffffffffffe53100000000000000000000000017caffffffffffc1000000000038ffffffff74000000000000000000000000000035f9ffffffff9400edffffffbc0000acffffff2000000000aeffffffff86ffffff68000000000000000000afffffffff6800000000000000000000000000000074ffffa50000000000000000000000000000000000000000000000000081ffffffffc530000000000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000025ee1ffffffffffffffffffffbe3a00000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000047f9fffffff84300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000023ffffffffff6d0000000000000000000000000000000000003effffffffff500000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000054ffffffffffff380000001cf8fffffffff42800000000000000000000000000000edcffffffffff400000000038ffffffff740000000000000000000000000012e1ffffffffc90600f0ffffffbc0000acffffff200000001bfeffffffb6008cfffff93800000000000000002dffffffffc700000000000000000000000000000065ffffb40000000000000000000000000000000000000000000000000011e1ffffffffffe5ce91000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000000044b94c9eaf9f5dfc27f33000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000000000002a82c8e6faf5dbab600a000000005ef7ffff8800000000000000d0ffffffff1c00000000000056fdfffffff335000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000056ffffffffff2600000000000000000000000000000000000004f3ffffffff850000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000076ffffffffffff590000008bffffffffff620000000000000000000000000000000034fdffffffffb70000000038ffffffff7400000000000000000000000001b6ffffffffec1e0000f0ffffffbc0000acffffff200000005fffffffff5e0003bfffffe4160000000000000000cbfffffffb0d00000000000000000000000000005cffffc3000000000000000000000000000000000000000000000000000033edffffffffffffff0f0000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000000000000d9bfdffffffffffffffffec64000000bfffffff8800000000000000d0ffffffff1c0000000000000066ffffffffec290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa70000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000051ffffffffffff35000000e0ffffffffda020000000000000000000000000000000000aefffffffffb1200000038ffffffff740000000000000000000000007dfffffffffd48000000f0ffffffbc0000acffffff20000000a2ffffffff1b000016e4ffffbf03000000000000008dffffffff49000000000000000000003583bfecfffffffff0d9bd792b0000000000000000000000000000000000000000000024c4ffffffffffff140000a4fffffff6000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff8800000000000000d0ffffffff1c000000000000000078ffffffffe31f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb0000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000003caffffffffaf00000023ffffffffff6d0000000000000000000000000000000000003effffffffff5000000038ffffffff74000000000000000000000044fdffffffff8100000000f0ffffffbc0000acffffff20000000cdffffffef0000000038f9ffff8b000000000000005bffffffff68000000000000000262d6ffffffffffffffffffffffffffc034000000000000000000000000000000000000000000004292d0e9fbff140000a4ffffffee000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff8800000000000000d0ffffffff1c00000000000000000089ffffffffd916000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc50000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000012a1f3ec8b0900000056ffffffffff2600000000000000000000000000000000000004f3ffffffff8500000038ffffffff74000000000000000000001beaffffffffba0200000000f0ffffffbc0000acffffff20000000e1ffffffd500000000006bffffff5500000000000045ffffffff7c0000000000003accfffffffffffffffffffffffffffffffffe8d030000000000000000000000000000000000000000000000000000000000a4ffffffe5000048a7ddf7f6d89c3f000000005ef7ffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff8800000000000000d0ffffffff1c000000000000000000009affffffffce0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa700000038ffffffff7400000000000000000005c5ffffffffe3140000000000f0ffffffbc0000acffffff20000000f5ffffffc9000000000000a1fffff32a000000000035ffffffff8e00000000007bfeffffffffffffffffffffffffffffffffffffffb60700000000000000000000000000000000000000000000000000000000a4ffffffcd13b1ffffffffffffffffba1d0000bfffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000090fffff791020000000000059bf9ffff640000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff8800000000000000d0ffffffff1c000000000000000000000288f5ffffffc10800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000038ffffffff7400000000000000000090fffffffffa39000000000000f0ffffffbc0000acffffff20000000f7ffffffcc00000000000009d0ffffd80e0000000039ffffffff84000000019fffffffffffffe68a3d10fdffff27337bdbffffffffff9d0000000000000000000000002bbff8e4740200000000000000000000a4ffffffbdccffffffffffffffffffffeb3800deffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000002adffffffaa0600000009b5ffffff83000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000023fffffffff81b0000000000000000000083ffffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000026fddfadc700200000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000038ffffffff74000000000000000055ffffffffff6e00000000000000f0ffffffbc0000acffffff20000000e4ffffffdc0000000000000022eeffffaf0100000046ffffffff7000000000abfffffffff37408000000ecffff2f0000046ff9ffffffff5a0000000000000000000018eeffffffff8200000000000000000000a4fffffffffffffffff3d7d8f6fffffffff338f9ffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000009c7ffffffb80a000dc0ffffffa200000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000009fffffffffffa500000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000000000026f2ffffffffa90000000000000000f0ffffffbc0000acffffff20000000d1fffffff402000000000000004afeffff7800000068ffffffff590000000016ebffffbe1e0000000000daffff410000000043faffffffdd040000000000000000007dfffffffffff80b000000000000000000a4ffffffffffffc843040000002b8ceffffff0ffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000001a9e7570034ffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000000014dbffffffc421caffffffbd0500000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000044ffffffffffffff48000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000000000ad3ffffffffd80c0000000000000000f0ffffffbc0000acffffff20000000aaffffffff2a000000000000000081fffffc44000097ffffffff21000000000038ad6f02000000000000c8ffff5300000000007bffffffff58000000000000000000a0ffffffffffff25000000000000000000a4ffffffffffb4060000000000000019b2ffffffffffff880000fcffffffe800000000000000000000000000b4ffffffff3400006bffffff8933ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000024ebfffffffaffffffd30f0000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000095ffffffff4d0000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800008bffffffffffffff92000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000000000000a2fffffffff42b000000000000000000f0ffffffbc0000acffffff2000000068ffffffff6c000000000000000002b6ffffeb1e00e0ffffffde00000000000000000000000000000000b6ffff6500000000000bf3ffffffa50000000000000000007cfffffffffff70a000000000000000000a4fffffffff3130000000000000000000083ffffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000020d4ffffffccffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000000000039f6ffffffffffe51d000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a2ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000089ffffffffffffff90000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000000000067ffffffffff5b00000000000000000000f0ffffffbc0000000000000000000025ffffffffcd00000000000000000011deffffcb4effffffff9000000000000000000000000000000000a3ffff77000000000000b3ffffffe800000000000000000015ebffffffff7d00000000000000000000a4ffffffff9d0000000000000000000000008dffffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000db5ffffffffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000000000000052fdfffffff23000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800003fffffffffffffff44000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000033f8ffffffff960000000000000000000000f0ffffffbc0000000000000000000000bfffffffff5200000000000000000030f6fffff8fffffffb1f0000000000000000000000000000000091ffff8900000000000090ffffffff0700000000000000000026bbf8e26e0100000000000000000000a4ffffffff610000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000b5ffffffff3200000000038fffffffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000098ffffffffff9e00000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff7400000011dfffffffffcb060000000000000000000000f0ffffffbc000000000000000000000045ffffffffe71f0000000000000000005fffffffffffff9d00000000000000000000000000000000007fffff9b00000000000088ffffffff1d00000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000c2ffffffff2300000000000066fbffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061fffed6390000000000000bc5ffff8600000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000066d9f9d8670100000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000001b3ffffffffed1f000000000000000000000000f0ffffffbc000000000000000000000000b3ffffffffe13000000000000000000edcffffffffdd0f00000000000000000000000000000000006dffffad000000000000acffffffff1800000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000e1ffffffff100000000000000042eeffff60000000000000000000000000000000000000b4ffffffff9c000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffd10000000000004affffffba00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff7400007afffffffffe4a00000000000000000000000000f0ffffffbc00000000000000000000000011dffffffffffc9b3f030000001669e0ffffffffff440000000000000000000000000000000000005affffbf000000000016f5fffffffb0200000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcfffffff72e00000000000000000000001fffffffffe300000000000000000000000000000000000000000000000000000000000000b4ffffffff9c00000000000d9bfdffffffffffffffffec64000000bfffffff88000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f4ffffff1500000000002bffffffee00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740042fcffffffff830000000000000000000000000000f0ffffffbc000000000000000000000000002ae0fffffffffffff7dfd2e4ffffffffffffffffa000000000000000000000000000000000000048ffffd10000000006b6ffffffffcc0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffffed350000000000000000000089ffffffffa8000000000000000000000000000000000000000000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff88000000fcffffffe800000000000000000000000000b5ffffffff320000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffff4a000000000002f2ffffff23000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000016a6f3ee910b0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff701ae8ffffffffbc020000000000000000000000000000f0ffffffbc000000000000000000000000000016c3fffffffffffffffffffffffffffffeffffff41000000000000000000000000000000000036ffffe300000022c3ffffffffff6b0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcfffffffffff77101000000000000003efaffffffff4e00000018ffffffffffffffffffff080000000000000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000000fcffffffe800000000000000000000000000c2ffffffff230000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffff7f000000000000beffffff57000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000004ceffffffffb40000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff6cc3ffffffffe415000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000155d8fffffffffffffffffffff79921daffffd9070000000000000000000000000000000023fffff5003a9dfaffffffffffd70a0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffe5ffffffca570c000000177bf6ffffffffdb0200000018ffffffffffffffffffff0800000000000000e4ffffffff080000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff88000000fcffffffe800000000000000000000000000e1ffffffff100000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffb400000000000088ffffff8c000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c00000000000000000054ffffffffffff3800000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffdafffffffffa3a00000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000002367fbed8eefaebd4a1620f000042ffffff810000000000000000000000000000000011ffffffdaffffffffffffffef2f000000000000000000000000030404020000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff8862fcfffffffcddd0e2fefffffffffffd3e0000000018fffffffffffffffffffa0200000000000000e4ffffffff08000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff88000000fcfffffff72e00000000000000000000001fffffffffe3000000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022ffffffe900000000000051ffffffc0000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000000000000000000010e5fffffff729000000000044ffffffffd205000000000000000076ffffffffffff5900000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffffff700000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000000000000000000000000000000000000a0fffff92900000000000000000000000000064da3ffffffffffffffffffffe02b00000000000000000000000000daffff9c0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff69004de9fffffffffffffffffffffffe6a000000000018ffffffffcdccccccc9700000000000000000e4ffffffff08000000000000000000000023fffffffff81b0000000000000000000083ffffffffff88000000fcffffffffed350000000000000000000089ffffffffa8000000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ecffffff1e00000000001afffffff3020000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c0000000000000000000056ffffffffff820000000000a0ffffffffff3a000000000000000051ffffffffffff3500000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffffab000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000011dfffffc2010000000000000000000034a1f0fffffffffffffffffffff98e0c0000000000000000000000000000edffffbb0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff4a000014a5feffffffffffffffffe14f00000000000018ffffffff0800000000000000000000000000e4ffffffff0800000000000000000000005affffffffa90000000000000000000000008dffffffff88000000fcfffffffffff77101000000000000003efaffffffff4e00000000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8ffffff53000000000000e4ffffff290000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c0000000000000000000052ffffffffff7d00000000009cffffffffff35000000000000000003caffffffffaf0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffd90d000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000000197180801d000000000000000021b7ffffffffffffffffffffffde821800000000000000000000000000000002fdffffdb0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffd30d000000002782c2e9faf1dbab5e080000000000000018ffffffff0800000000000000000000000000e4ffffffff08000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000fcffffffe5ffffffca570c000000177bf6ffffffffdb0200000000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083ffffff89000000000000adffffff5e0000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c000000000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000012a1f3ec8b090000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038fffffffffffff52c00000000000000000000000000000000000000f0ffffffbc0000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000052f4ffffffffffffffffffe0893400000000000000000000000000000000000014fffffff90100000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000e4ffffffff08000000000000000000000095ffffffff4d0000000000000000000000005cffffffff88000000fcffffff8862fcfffffffcddd0e2fefffffffffffd3e0000000000000000002a82c8e6faf5dbab600a000000005ef7ffff8800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffffbe00000000000077ffffff920000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c000000000000000000000026baf1c63b0000000000000053d3efab18000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffff5d0000000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000051fbfffffffffffffffaffff62000000000000000000000000000000000000000020ffffffff3300000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a2ffffffff400000000000000000000000005cffffffff88000000fcffffff69004de9fffffffffffffffffffffffe6a00000000000000000d9bfdffffffffffffffffec64000000bfffffff8800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025bbccccccd5fffffff9ccccccccccccddfffffff0cccccccccccc3e00000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffff99000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000bedfffffa9e0000000000000000000000000000000000000000000018eefffffffffff59832a5ffff74000000000000000000000000000000000000000006f8ffffffc60a000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000fcffffff4a000014a5feffffffffffffffffe14f000000000000000015cdffffffffffffffffffffffffbc1800deffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffff6e00000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffcc07000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000082ffffffff4f00000000000000000000000000000000000000000094ffffffffffb51c000094ffff860000000000000000000000000000000000000000008effffffffc71a0000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000d9bfdffffffffffffffffec64000000bfffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000fcffffd30d000000002782c2e9faf1dbab5e08000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffffffffffffffffffffffffffffffffffffffffffffffff8500000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000002475b0d9f3fdf7e9c89b580d0000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038fffffdce1d00000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000015f6ffffffbf000000000000000000000000000000000000000003eaffffffff9c0100000082ffff9800000000000000000000000000000000000000000005b7ffffffffe94a00000000000000a4ffffffff400000000000000000000000005cffffffff880000000015cdffffffffffffffffffffffffbc1800deffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dffffffffffffffffffffffffffffffffffffffffffffffffffef40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000002cb3fffffffffffffffffffffff39114000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000095ffffffff2f000000000000000000000000000000000000002effffffffd9060000000071ffffaa000000000000000000000000000000000000000000000591ffffffffff90040000000000a4ffffffff400000000000000000000000005cffffffff8800000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000087ffffff80000000000000b3ffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000493fdffffffffffffffffffffffffffffef580000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000021fcffffff9d0000000000000000000000000000000000000047ffffffff7500000000005fffffbc0000000000000000000000000000000000000000000000004fefffffffffbc0a00000000a4ffffffff400000000000000000000000005cffffffff880000005cffffffffffcb45040000002b8cefffffedffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000023fffffffff81b0000000000000000000083ffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffb200000000000082ffffff8a00000000000000000000000000000000000000034994c9ecfaf9e8c2883b000000000000000000000000000000000000000000000038ffffffffff1c00000000000000000000000011bdffffffffffffffefd7d2e4ffffffffffffff8800000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000000acffffff200000000000000000000000a7fffffff71500000000000000000000000000000000000059ffffffff4800000000004dffffce0000000000000000000000000000000000000000000000000025d8ffffffffb702000000a4ffffffff400000000000000000000000005cffffffff88000000ccffffffffbc080000000000000019b2ffffffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024ffffffe400000000000050ffffffbb00000000000000000000000000000000000369e3ffffffffffffffffffffd45400000000000000000000000000000000000000000038ffffffffff1c000000000000000000000006c8ffffffffffe9762500000000125dcdffffffffff87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000000000acffffff20000000000000000000000030ffffffff7b00000000000000000000000000000000000048ffffffff4800000000003cffffe000000000000000000000000000000000000000000000000000000fc5ffffffff78000000a4ffffffff400000000000000000000000005cffffffff88000023fffffffff81b0000000000000000000083ffffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000000000000000000000004ffffff59c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f1ffffff1600000000001effffffec000000000000000000000000000000001fc7ffffffffffffffffffffffffffffb1110000000000000000000000000000000000000038ffffffffff1c000000000000000000000096ffffffffff9d0d00000000000000000273fafffffff21800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000000acffffff20000000000000000000000000baffffffe505000000000000000000000000000000000026ffffffff7600000000002afffff100000000000000000000000000000000000000000000000000000012e2fffffff315000000000000000000000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000077ffff9f00000000117cd6f9e79918000000000000000095ffffffff4d0000000000000000000000005cffffffff880000000000000000000000000000b5ffffffa501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffff48000000000000ebffffff1e00000000000000000000000000002de7fffffffffffff4d8dcf7ffffffffffffd61a00000000000000000000000000000000000038ffffffffff1c000000000000000000004affffffffff8200000000000000000000000047f5ffec3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000000acffffff2000000000000000000000000043ffffffff59000000000000000000000000000000000000ddffffffd8040000000019ffffff0400000000000000000000000000000000000000000000000000000055ffffffff6f0000000000000000000000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000005bffffed20000c7cf2ffffffffffe31e00000000000000a2ffffffff400000000000000000000000005cffffffff88000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffff7a000000000000baffffff50000000000000000000000000001ee6fffffffff995370000000346a9feffffffffd20e000000000000000000000000000000000038ffffffffff1c00000000000000000001d1ffffffffad000000000000000000000000000037aa290000000000000000000000000000000000000000000000000000000035c7fbffffd21700000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff960000000000000000acffffff2000000000000000000000000000ccffffffc900000000000000000000000000000000000082ffffffff8e0000000007ffffff150000000037a66d000000000000000000000000000000000000000004ecffffffb50000428080806803000000000000000000000000117580807e09000095ffffffff4d0000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000001efefffff9d6f4ffffffffffffffffb700000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000082ffffffff6d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005effffffac00000000000088ffffff8100000000000000000000000003c4ffffffffe02e000000000000000047f1ffffffffa3000000000000000000000000000000000038ffffffffff1c00000000000000000059ffffffffef11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172faffffffcd130000000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000000acffffff200000000000000000000000000056ffffffff3800000000000000000000000000000000000fecffffffffa416000000f6ffff2700002fa9feffff5c0000000000000000000000000000000000000000c4ffffffd3000020f8ffffff83000000000000000000000000bbffffffa3000000a2ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000adfffffffffffffffff5d5f6ffffff25000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000009dffffffffd53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dffffffde00000000000056ffffffb30000000000000000000000006affffffffeb21000000000000000000003af9ffffffff460000000000000000000000000000000038ffffffffff1c000000000000000000c1ffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000000acffffff20000000000000000000000000005effffffffa700000000000000000000000000000000000053fefffffffff49f5529e6ffff656bbeffffffffffef1200000000000000000000000000000000000000b9ffffffe100000089fffffff8210000000000000000000054fffffff61c000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000018dbfffffffffff4820f0017dfffff63000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000004ffffffffff73c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f7ffffff11000000000024ffffffe400000000000000000000000aeaffffffff5100000000000000000000000075ffffffffd10000000000000000000000000000000038ffffffffff1c000000000000000018fdfffffffc14000000000000000000000000000000000000000000000016a6f3ee910b000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000095ffffffffffe53100000000000000000000000017caffffffffffc1000000000000acffffff2000000000000000000000000000cefffffffffb1b00000000000000000000000000000000000074fffffffffffffffffffffffffffffffffffff8640000000000000000000000000000000000000000e1ffffffcb0000000ee9ffffffab00000000000000000007deffffff8300000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000128ee2f9db83130000000085ffff7e000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000b3ffffffffee2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fccccccccccccf8ffffffd5cccccccccccdffffffffcccccccbb641000000000069ffffffffbf0000000000000000000000000004ddffffffff4600000000000000000000000000000038ffffffffff1c00000000000000006bffffffffbe000000000000000000000000000000000000000000000004ceffffffffb40000000000000000000000027ffcffffffffb809000000000000000000000000000000000000001cf8fffffffff42800000000000000000000000000000edcffffffffff400000000000acffffff2000000000000000000000000040ffffffffffff850000000000000000000000000000000000000054f3ffffffffffffffffffffffffffffffc83100000000000000153b00000000000000000000004dffffffffa10000000069ffffffff3c000000000000000079ffffffe70c00000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000017c2fbffffffe0190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005faffffffffffffffffffffffffffffffffffffffffffffffffffe90200000000ceffffffff4b00000000000000000000000000006dffffffffac00000000000000000000000000000038ffffffffff1c0000000000000000a9ffffffff70000000000000000000000000000000000000000000000054ffffffffffff380000000000000000001abfffffffffffaf0700000000000000000000000000000000000000008bffffffffff620000000000000000000000000000000034fdffffffffb70000000000acffffff20000000000000000000000000b0ffffffffffffeb08000000000000000000000000000000000000001c9afbffffffffffffffffffffffc85d01000000000000000bdaffac19000000000000000029e8ffffffff4b0000000003d4ffffffcb0100000000000018f2ffffff630000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceffffffffffffffffffffffffffffffffffffffffffffffffffff2400000025ffffffffe803000000000000000000000000000013fbfffffff70d000000000000000000000000000038ffffffffff1c0000000000000000d9ffffffff3b000000000000000000000000000000000000000000000076ffffffffffff590000000000000000036a808080807c5302000000000000000000000000000000000000000000e0ffffffffda020000000000000000000000000000000000aefffffffffb12000000000000000000000000000000000000000023fdffffffffffffff630000000000000000000000000000000000000000001965afd4eafdffffe49f6c2a0000000000000000000090fffffff59437030000001b7df4ffffffffca02000000000048ffffffff5d0000000000009dffffffd0020000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ae0feffffffffffffffffffffffffffffffffffffffffffffffff4e0000006effffffff9d00000000000000000000000000000000c2ffffffff4e000000000000000000000000000038ffffffffff1c000000000000000bfdfffffffe0c000000000000000000000000000000000000000000000051ffffffffffff350000000000000000000000000000000000000000000000000000000000000000000000000023ffffffffff6d0000000000000000000000000000000000003effffffffff50000000000000000000000000000000000000000092ffffffffc7ffffffd2000000000000000000000000000000000000000000000000000088ffff9200000000000000000000000001aefffffffffffff4dbd1e4fffffffffffff22e00000000000000b8ffffffe40a0000000031fdffffff43000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000004797b8d8fdffffffffcdccccccccccccbf00000000a4ffffffff400000000000000000000000005cffffffff8800000000000d9bfdffffffffffffffffec64000000bfffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035ffffffd200000000000061ffffffab000000000000000000acffffffff5c0000000000000000000000000000000081ffffffff8e000000000000000000000000000038ffffffffff1c0000000dd8d8d8ddfffffffffdd8d8d8d8d8d8d8d8d8d8d8bf20000000000000000000000003caffffffffaf000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff2600000000000000000000000000000000000004f3ffffffff85000000ccffffffdc00000000000000000000000ff3ffffffec40ffffffff410000000000000000000000000000000000000000000000000078ffffa1000000000000000000000000000072f4ffffffffffffffffffffffffffec3b00000000000000002bfcffffff7f00000000c1ffffffb300000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000032fffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f8fffffc0b00000000002cffffffe2000000000000000000dcffffffff28000000000000000000000000000000004dffffffffbf000000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffff7e00000000000000000000000012a1f3ec8b09000000acffffffffa4000000000000000000000000000000000000028ceeffffffff5f00000079ffffffffe90000000000000000000000000000000000000000bdffffffffa7000000ccffffffdc000000000000000000000074ffffffff9701ddffffffb00000000000000000000000000000000000000000000000000068ffffb10000000000000000000000000000001793f7fffffffffffffffffffba5170000000000000000000099fffffff51b000054fffffffb2700000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000048fffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9ffffff3e000000000002f3ffffff1a0000000000000007fdfffffffd050000000000000000000000000000000028ffffffffea000000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffff84000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000000000093ffffffffff85000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb000000ccffffffdc0000000000000000000003e1ffffffff2d0076fffffffd2200000000000000000000000000000000000000000000000058ffffc000000000000000000000000000000000000b53a1d2effbf2dfb3751c00000000000000000000000016f1ffffffa10007deffffff930000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000048fffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093ffffff74000000000000c0ffffff510000000000000023ffffffffe3000000000000000000000000000000000008ffffffffff080000000000000000000000000038ffffffffff1c0000000000000064ffffffffab00000000000000000000000000000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000000073ffffffffffaa010000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc5000000ccffffffdc0000000000000000000056ffffffffbf000013f7ffffff8e00000000000000000000000000000000000000000000000041ffffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000079fffffffc206effffffef130000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffe000000000000000000000000000000000000000000000003eddffffaa0000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffffaa0000000000008affffff88000000000000003affffffffcf000000000000000000000000000000000000f4ffffffff200000000000000000000000000038ffffffffff1c0000000000000068ffffffffa800000000000000000000000000000000000000000000000000024903000000000000acffffffffa40000000000000000000000000000000054feffffffffc809000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000000000c7ffffffff52000000a1fffffff10c000000000000000000000000000000000000000000000006c5ffdf000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0ffffff8fe1ffffff73000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffe00000000000000000000000000000000000000000000034f4fffff31b0000000000000000000023fffffffff81b0000000000000000000083ffffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ffffffdf00000000000054ffffffc0000000000000004affffffffbf000000000000000000000000000000000000e4ffffffff310000000000000000000000000038ffffffffff1c0000000000000065ffffffffaa000000000000000000000000000000000000000000000000005cffe4811500000000acffffffffa40000000000000000000000000000003af7ffffffffe01700000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000000037ffffffffe00300000037ffffffff6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022f5d717c7257290000000000000000000000000000000059fffffffcffffffdc06000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e1ffffffe300000000000000000000000000000000000000000023e9ffffff7300000000000000000000005affffffffa90000000000000000000000008dffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001efffffff1500000000001ffffffff40300000000000051ffffffffb9000000000000000000000000000000000000deffffffff380000000000000000000000000038ffffffffff1c0000000000000060ffffffffaf00000000000000000000000000000000000000000000000000c9ffffffc600000000acffffffffa4000000000000000000000000000025ebfffffffff12c0000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000000000a8ffffffff760000000000ccffffffda010000000000000000000000000000000000000000000000000000000000000000000000000000000000002594efffffffffffffffdd8f290000000000000000000000000000c7ffffffffffff5300000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000d1fffffff3000000000000000000000000000000000000000015dbffffffd304000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bbffffff4b000000000000e8ffffff2e00000000000056ffffffffb5000000000000000000000000000000000000d9ffffffff3e0000000000000000000000000038ffffffffff1c00000010fffffffffffffffffffffffffffffffffffffffffffffdae0000000000000000001affffffff9000000000acffffffffa40000000000000000000000000014dbfffffffffc48000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000001dfbfffffff612000000000062ffffffff4b00000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000000000000000017cf9fffffffffffffffffffffffc9d1a00000000000000000000000039ffffffffffc20000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000baffffffff1f0000000000000000000000000000000000000bcafffffffe3d00000000000000000000000095ffffffff4d0000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffff81000000000000b3ffffff6600000000000051ffffffffb9000000000000000000000000000000000000deffffffff380000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffffffffff1100000000000000004cfffffffa1700000000acffffffffa400000000000000000000000008c6ffffffffff6b00000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000008affffffff9b00000000000009eeffffffba00000000000000000010aaffffffffffffffffffe05a00000072ffffff78000000000000000000019bffffffffffffffffffffffffffffffeb48000000000000000000000000a9fffffffe340000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000081ffffffff74000000000000000000000000000000000004b5ffffffffa000000000000000000000000000a2ffffffff400000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044ffffffb70000000000007dffffff8e0000000000004affffffffc0000000000000000000000000000000000000e4ffffffff300000000000000000000000000038ffffffffff1c0000000dd8d8d8d8ffffffffffd9d8d8d8d8d8d8d8d8d8d8d8d8d8d810000000000000000062ffffffc00000000000acffffffffa4000000000000000000000002acffffffffff920000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000000befffffffff2e000000000000008dffffffff2a0000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000000006bfffffffffff5a268515873b0f8ffffffffea08000000000000000000000020f8ffffa3000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000036ffffffffee24000000000000000000000000000000009dffffffffee1600000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018cf2ffec00000000000047ffffe43900000000000039ffffffffd0000000000000000000000000000000000000f5ffffffff1f0000000000000000000000000038ffffffffff1c0000000000000000dcffffffff2e00000000000000000000000000000000000000000000005dffffff9b0000000000acffffffffa400000000000000000000008dffffffffffb5030000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000006cffffffffc0000000000000000024feffffff980000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff78000000000000000010f1ffffffffb4160000000000001387f9ffff5e0000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000000beffffffffec660e0000000000000000000000000082fffffffee1470000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffffe3000000000000000000000000000000000008ffffffffff070000000000000000000000000038ffffffffff1c00000000000000009fffffffff6a00000000000000000000000000000000000000000000003cffffff950000000000acffffffffa4000000000000000000006dffffffffffd10d000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000002dbffffffff53000000000000000000b9fffffff512000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000061ffffffffbe040000000000000000002ec499000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000002cf3fffffffffffddecec9a3010000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fcfffffffd060000000000000000000000000000000028ffffffffe8000000000000000000000000000038ffffffffff1c000000000000000062ffffffffb000000000000000000000000000000000000000000000000af5ffffba0000000000acffffffffa40000000000000000004efdffffffffe71d00000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc0000000000004effffffffe2030000000000000000004effffffff76000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000000a2ffffffff2d0000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000000000000000000000000018ffffffff080000000000000000000000000000004cf5ffffffffffffffffff110000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000daffffffff29000000000000000000000000000000004effffffffbd000000000000000000000000000038ffffffffff1c000000000000000015f9fffffffa140000000000000000000000000000000000000000000000a4fffff91200000000acffffffffa4000000000000000035f5fffffffff6350000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000beffffffff780000000000000000000002e0ffffffe2030000000065ffffffff71000000000000000000005bfaffffffff780000000000000000bdffffffe4000000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000000000002dcaffffffffffffffff1d0000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000090fffff791020000000000059bf9ffff6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000a9ffffffff5d0000000000000000000000000000000082ffffffff8b000000000000000000000000000038ffffffffff1c000000000000000000a9ffffffff7900000000000000000000000000000000000000000000002cfaffff8700000000acffffffffa40000000000000021e9fffffffffe53000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000002ffffffffff713000000000000000000000079ffffffff540000000070ffffffff4500000000000000000000006dffffffff780000000000000000c3ffffffd3000000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000000000000070ffffffb8000018ffffffff080000000000000000000000000000000000004291cde8faefd59a110000000010aaffffffffffffffffffe05a00000072ffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000002adffffffaa0600000009b5ffffff830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000006bffffffff9e00000000000000000000000000000000c2ffffffff4a000000000000000000000000000038ffffffffff1c00000000000000000040fffffffff01400000000000000000000000000000000000000000000007efffff930000000acffffffffa400000000000011d7ffffffffff7800000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000caffffffd90000000000a0ffffffff9d00000000000000000000000015f9ffffffc30000000051ffffffff55000000000000000000000058ffffffff780000000000000000adffffffec000000000000000000000000000000000000b2cccccccccccccccccccccccccccccccccccccccccccc9900000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000009c7ffffffb80a000dc0ffffffa2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd400000000000000000022ffffffffe903000000000000000000000000000014fbfffffff50b000000000000000000000000000038ffffffffff1c00000000000000000000b3ffffffffaf010000000000000000000000000000000000000000000004c5ffffdb050000acffffffffa4000000000007c1ffffffffff9e0000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c7ffffffd40000000018f9ffffffff2f00000000000000000000000000a5ffffffff3300000012f6ffffffb1000000000000000000000058ffffffff7800000000000000007bffffffff39000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000014dbffffffc421caffffffbd05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd400000000000000000000caffffffff4c00000000000000000000000000006effffffffa800000000000000000000000000000038ffffffffff1c0000000000000000000021f6ffffffff8b01000000000000000000000012bbe432000000000000000fcaffce070000acffffffffa40000000002a7ffffffffffbf050000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c2ffffffce0000000082ffffffffc200000000000000000000000000003affffffffa10000000092ffffffff850200000000000000000058ffffffff78000000000000000029feffffffc2020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff080000000000000000000000000000001580c9eefbeaca8b36000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000024ebfffffffaffffffd30f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000065ffffffffc00000000000000000000000000005deffffffff4100000000000000000000000000000000000000000000000000000000000000000064ffffffffffaa120000000000000000003addffffec2b00000000000000106704000000acffffffffa40000082dadffffffffffd911000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000b6ffffffc100000008eaffffffff54000000000000000000000000000000cffffffff9170000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000a8ffffffff9b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000000047efffffffffffffffffc22a00000043ffffffffde0d000000000000000f95feffffffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000039f6ffffffffffe51d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000008e8ffffffff5300000000000000000000000077ffffffffcd000000000000000000000000000000000000000000000000000000000000000000000086fffffffffff08332010000000a47adfeffffffff9400000000000000000000000000acffffffffffffffffffffffffffffe72400000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000a7ffffffb300000064fffffffdad020000000000000000000000000000003becffffff7f0000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000000000000016e4ffffffffc01d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000002cf6ffffffffffffffffffffed0a000065ffffffff71000000000000000000005bfaffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000052fdfffffff230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000000065ffffffffed22000000000000000000003cfaffffffff4100000000000000000000000000000000000000000000000000000000000000000000000183fefffffffffffff4ddd2e2faffffffffffff9a0200000000000000000000000000acffffffffffffffffffffffffffda270000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000094ffffffa0000000000000000000000000000000000000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000002be6ffffffffef600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000b3fffffffffff7d6f0ffffff7900000070ffffffff4500000000000000000000006dffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000000002bfffffffffe12f000000000000000048f1ffffffff9c00000000000000000000000000000000000035c7fbffffd217000000000000000000000000004dedfffffffffffffffffffffffffffff270000000000000111500000000000000acffffffffffffffffffffffffe219000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000007effffff8b00000000000000000000000000000000000000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff7800000000000000000000001abdffffffffffb91a0000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018ffffffffcdccccccc970000000000000000ffdffffffff9609000046d2cf0500000051ffffffff55000000000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000000001ae3fffffffff996380000000347aaffffffffffcd0b000000000000000000000000000000000172faffffffcd130000000000000000000000000000000e7ceefffffffffffffffffffffba41a00000000000007cedb1f000000000000acffffffffedccccdeffffffffffe5270000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000066ffffff75000000000000000000000000000000000000000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000000000000000167f1ffffffffe62500000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018fffffffffffffffffffa0200000000000044ffffffffd8030000000001050000000012f6ffffffb1000000000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa8cbcccccccccccccccccccccccccccccccce5fffffff7ccccccccca6b000000000000002ae5fffffffffffff4d8ddf8ffffffffffffd3180000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000009488fc6ddf3faefd2aa6a19000000000000000013f2ffda140000000000acffffffffa40000002ddcffffffffe62000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000004cffffff5900000000000000000000000000004ffffff59c0600000000000000000000000000000000000000000000000000000000000058ffffffff7800000000000000000000000000001dc3ffffffffce01000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018ffffffffffffffffffff080000000000005affffffff9a00000000000000000000000092ffffffff850200000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffca00000000000000001ec5ffffffffffffffffffffffffffffaf10000000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000047fcffb90200000000acffffffffa40000000020e7ffffffffd813000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000032ffffff3d000000000000000000000000000000b5ffffffa501000000000000000000000000000000000000000000000000000000000058ffffffff7600000000000000000000000000000005b0ffffffff27000000000000000000b2cccccccccccccccccccccccccccccccccccccccccccc990000bfcccccccccccccccccccccccccccccccccccccccccccc92000018ffffffffffffffffffff0800000000000063ffffffff810000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000000000000000367e3ffffffffffffffffffffd45300000000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffff6800000000acffffffffa4000000000031f3ffffffffc6090000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000005fffffffff660000000000000000000000000000000017fdffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffffff800000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000000000000000000034892c8ebfaf8e6c1873900000000000000000000000000000000001abfffffffffffaf0700000000000000a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd800000000000004d8ffec0b000000acffffffffa400000000000047fbffffffffb10300000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000000000000000000000000000000000082ffffffff6d0000000000000000000000000000000000000000000000000000000075ffffffff530000000000000000000000000000000000dfffffff2d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffffff800000000000000000000000000000005cdcffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffc3030000000000000000000000007cffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036a808080807c53020000000000000000a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8000000000000005cffff6c000000acffffffffa4000000000000005fffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffd53000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000c0ffffff1b00000000000000000000000000000000145fabd5edfcf3d9b076280000000000000000000000044c96cbedfbf6e3c68a4200000000000000000099cccccccccccccccccccccccccc3f00000000000064ffffffff80000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009affffffff850000000000000000000000007cffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8000000000000000ef9ffc6000000acffffffffa400000000000000007cffffffffff7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffff73c00000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000000000000000000000000a1ffffff0800000000000000000000000000000f88f7ffffffffffffffffffffc64a00000000000000025fe1ffffffffffffffffffffd24b00000000000000b5ffffffffffffffffffffffffff5000000000000064ffffffff800000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cefffffffd4500000000000000000000007cffffffd40000000000000000acffffffffa40000000000000000000000000000000011b3f9fffffff123000000000000000000000000000000000000000000000033fdffffffffffe1ccccccccccccccccccccccccccccccccccccccccccac000000000029baf3fffffc0a0000acffffffffa400000000000000000098ffffffffff620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ffffffffee290000000000000000000059fffff67b070000000000000002a8ffffffff8800000000000000000000000000000000000082fffff6000000000000000000000000000032e6ffffffffffffffffffffffffffffaa0c000000001fcbffffffffffffffffffffffffffff9001000000000052ffffffffffffffffffffffffff4d00000000000064ffffffff800000000000000000000000000000000000000000000000000000000058ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023f0ffffffe818000000000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000000001b4ffffffffff5500000000000000000038ffffffffff1c00000000000000000086ffffffffffd007000000000000000000000000000000000000000000000000000ee3ffffffffff2d0000acffffffffa400000000000000000003b2fffffffffb4a000000000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000054d9f9cb3800000000000000000000000000000000000017c2fbffffffe019000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000000a1818160000000000000000000000000044f4fffffffffffff5dcd1e1feffffffffffce10000026ebfffffffffffff1d8d0e0feffffffffff8b00000000000067feffffd4d7f7ffffffffffe21900000000000064ffffffff800000000000000000000000000000000000000000000000000000000058ffffffff7600000000000000000041cbf3c237000000000057d4f2b828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffbd020000000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000000072ffffffffff960000000000000000000038ffffffffff1c00000000000000000005cbffffffffff8d000000000000000000000000000000000000000000000000004fffffffffffff300000acffffffffa4000000000000000000000ac8fffffffff435000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000053fffffffff92e0000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000001dedffffffffffa93f03000000105cd0ffffffff5d000006d8fffffff1892c010000001269e8ffffffff3c0000000000005ffdfff543000000000000000000000000000064ffffffff80000000000000000000000000000000000000000000000000000000005fffffffff6600000000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008fffffffff7d0000000000000000007cffffffd40000000000000000acffffffffa4000000000000000000000000000035faffffffffcf070000000000000000000038ffffffffff1c0000000000000000000026f4fffffffffe4400000000000000000000000000000000000000000000000057fffffffffffb0c0000acffffffffa4000000000000000000000014daffffffffea2400000000000000000000000000000000000000000000001bd9ffffffff9f0b00000000000000000000000000d0ffffffffffb300000000000000000000000000000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000c2fffffffff54b00000000000000000271f9ffa4000000003ff9ffa315000000000000000018dcffffffbf0000000000000058fbfff74a0000000000000000000000000064ffffffff800000000000000000000000000000000000000000000000000000000075ffffffff53000000000000000084ffffffffff7a000000a6ffffffffff56000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7fffffffc3e00000000000000007cffffffd40000000000000000acffffffffa4000000000000000000000000000eddfffffffff225000000000000000000000038ffffffffff1c000000000000000000000066ffffffffffe513000000000000000000000000000000000000000000000012e8ffffffff97000000acffffffffa400000000000000000000000022e9ffffffffdc16000000000000000000000000000000000000000000000017d3ffffffffd72e000000000000000000000000f4ffffffffffd90000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000000000004dc6ffffffffffffffffffffe25a0000000000000000000000000000000000000000000000000000000000000000000000004afffffffffe4400000000000000000000002d660700000000001b28000000000000000000000049fffffffd150000000000000051f9fff95100000000000000000000000064ffffffff8000000000000000000000000000000000000000000000000000000000a8ffffffff24000000000000000080ffffffffff75000000a2ffffffffff510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001decffffffe414000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000a8ffffffffff5900000000000000000000000038ffffffffff1c000000000000000000000000b0ffffffffffad0000000000000000000000000000000000000000000000002ab6efea8805000000acffffffffa40000000000000000000000000034f4ffffffffcb0b000000000000000000000000000000000000000000000013cefffffffff76a0000000000000000000000d1ffffffffffb50000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000000000000000000000000000000000000000000000000000000c3ffffffff9500000000000000000000000000000000000000000000000000000000000000000002f3ffffff4b00000000000000004af7fffb59000000000000000000000064ffffffff80000000000000000000000000000048741c0000000000000000000011f5ffffffe600000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048feffffffb6010000000000007cffffffd40000000000000000acffffffffa400000000000000000000000065ffffffffff9b0000000000000000000000000038ffffffffff1c00000000000000000000000014e6ffffffffff630000000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000004afbffffffffb704000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000057fffffffffa3100000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021fffffffffc1b00000000000000000000000000000000000000000000000000000000000000000000e6ffffff6300000000000000000044f6fffd5e0000000000000000000064ffffffff800000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000003bc7f1be31000000000051d1f0b42300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffffff750000000000007cffffffd40000000000000000acffffffffa400000000000000000000002bf6ffffffffd2090000000000000000000000000038ffffffffff1c0000000000000000000000000047fefffffffff42500000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000063ffffffffffa0000000000000000000000000000000000000000000000000065c7d808080805f0000000000000000000057dbf9cd3b0000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016ae1f9c23100000000000000000064ffffffffb50000000000000000000000000000000000000000000000000000000000000000000017feffffff60000000000000000000004afafffd5a00000000000000000064ffffffff8000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003befffffffb3800000000007cffffffd40000000000000000acffffffffa40000000000000000000009d4fffffffff429000000000000000000000000000038ffffffffff1c000000000000000000000000000091ffffffffffca04000000000000000000000000000000000000000020b4f6e9830600000000acffffffffa40000000000000000000000000000000080ffffffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006ffffffffff5210000000000000000a4ffffffff7500000000000000000000000000000000000000000000000000000000000000000000a4ffffffff3e00000000000000000000006bfffff83c000000000000000064ffffffff800000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018e7ffffffe011000000007cffffffd40000000000000000acffffffffa4000000000000000000009affffffffff5e00000000000000000000000000000038ffffffffff1c000000000000000000000000000008d3ffffffffff84000000000000000000000000000000000000000de1ffffffff9a00000000acffffffffa400000000000000000000000000000000009bffffffffff6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000000000000000000000000003eddffffaa0000000000000000000000000000000000000000000002edffffffffff980000000000000000c8ffffffff4000000000000000000000000000000000000000000000000000000000000000000ba1ffffffffe204000000000000000000000000b7ffffdc050000000000000064ffffffff8000000000000000000000000000001ebbffffffffffffffffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040fcffffffaf000000007cffffffd40000000000000000acffffffffa400000000000000000056ffffffffff9f0000000000000000000000000000000038ffffffffff1c0000000000000000000000000000002ef8fffffffffd3c00000000000000000000000000000000000065fffffffffffe1d000000acffffffffa400000000000000000000000000000000000282e9fffffffd50000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000070ffffffff74000000000000000065ffffffff71000000000000000000005bfaffffffff78000000000000000000000000000000000034f4fffff31b0000000000000000000000000000000000000000000012ffffffffffffb90000000000000000dbffffffff270000000000000000000000000000000000000000000000000000000000000763e3ffffffffff5f0000000000000000000000000034ffffff670000000000000064ffffffff80000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007affffffff6e0000007cffffffd40000000000000000acffffffffa4000000000000000022f1ffffffffd50a0000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000071ffffffffffe00f000000000000000000000000000000000088ffffffffffff3d00000000000000000000000000000000000000000000000000000000000000000000000000000010aaffffffffffffffffffe05a00000072ffffff780000000000000070ffffffff74000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000000000000000023e9ffffff73000000000000000000000000000000000000000000000002ebffffffffff950000000000000000eeffffffff17000000000000000000000000000000000000000000000000000000002286e8ffffffffffff93000000000000000000000000000000deffffb80000000000000064ffffffff800000000000000000000000000000000000002877b0d8f1fbefd9a75b08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b6fffffff93300007cffffffd40000000000000000acffffffffa40000000000000005cafffffffff62b000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000001baffffffffffa5000000000000000000000000000000000064fffffffffffe1b000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000070ffffffff74000000000000000051ffffffff55000000000000000000000058ffffffff7800000000000000000000000000000015dbffffffd30400000000000000000000000000000000000000000000000069fffffffff31e0000000000000000eeffffffff17000000000000000000000000000000000000000000000000000352bcfeffffffffffffffb90100000000004cc2e8bc0a0000000000d0ffffd10000008ffeffffffffffffffffffffffffffffff7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013e1ffffffdc0e007cffffffd40000000000000000acffffffffa4000000000000008cffffffffff6300000000000000000000000000000000000038ffffffffff1c00000000000000000000000000000000001aecffffffffff5a000000000000000000000000000000000bdeffffffff95000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff780000000000000070ffffffff74000000000000000012f6ffffffb1000000000000000000000058ffffffff7800000000000000000000000000000bcafffffffe3d000000000000000000000000000000000000000000000000000064dff8bf2c000000000000000000dcffffffff2600000000000000000000000000000000000000000000000b76e1ffffffffffffffffffffffc4210000000045ffffff7c0000000013f7ffffbf000000cbffffffffffffffffffffffffffffffff7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038faffffffa8007affffffd40000000000000000acffffffffa40000000000004afeffffffffa40000000000000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000051fffffffffff01f000000000000000000000000000000001caff6e77d04000000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff780000000000000070ffffffff7400000000000000000092ffffffff850200000000000000000058ffffffff780000000000000000000000000004b5ffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000000000c8ffffffff400000000000000000000000000000000000000000000054e6fffffffffffffffeb54fa3ffffffe82600000003e0fffffb6b05001ebdffffff7c000000ccffffffffffffffffffffffffffffffff7c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff6673ffffffd40000000000000000acffffffffa4000000000039eeffffffffd30c0000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000009cffffffffffc3020000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000000000000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000070ffffffff740000000000000000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000000000009dffffffffee1600000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffff720000000000000000000000000000000000000000008cfffffffffffffff394260000007affffffcd010000004afdfffffffaebffffffffe71000000036607f9fc9ffffffffe6cccccccccccccc620000000000000000000000003fafeafae29e2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acfffffff788ffffffd40000000000000000acffffffffedccccccccdfffffffffffcf1d000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000bdbffffffffff7b0000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000000000000065ffffffff71000000000000000000005bfaffffffff780000000000000070ffffffff740000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000000000000000000082fffffffee1470000000000000000000000000014ffffffffffffffffffffffffffffffffffffffffe8000000000000005fffffffffb300000000000000000000000000000000000000007cffffffffffffe16e0e000000000001d3ffffff4d0000000056f0ffffffffffffffe02f00000000000000001fffffffff80000000000000000000000000000000000000008afffffffffffffa64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000edbfffffff8ffffffd40000000000000000acffffffffffffffffffffffffffffffdc8e390000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000036fbfffffffffb36000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff7800000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000070ffffffff740000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000000014ffffffffffffffffffffffffffffffffffffffffe8000000000000001ffefffffffb1800000000000000000000000000000000000029fbffffffffef6d0500000000000000008bffffff9d0000000000167bc5eefbedc0700c00000000000000000002f9ffffff800000000000000000000000000000000000005fffffd8563262e8fffe3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f7ffffffffffffd40000000000000000acffffffffffffffffffffffffffffffffffffc541000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000007cffffffffffdb0b0000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff7800000000000000000000000051ffffffff55000000000000000000000058ffffffff780000000000000070ffffffff74000000000000000000000000000249a2edffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000000004f7ffffffffffffffffffffffffffffffffffffffe80000000000000000b5ffffffff960000000000000000000000000000000000008dffffffffd01e000000000000000000007fffffffc6000000000000000000000000000000000000000000000000daffffff80000000000000000000000000000000000000d4fff51c00000038ffffb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffffffffd40000000000000000acfffffffffffffffffffffffffffffffffffffffe970700000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000003c3ffffffffff9c0000000000000000000000000000000000000000000065ffffffff71000000000000000000005bfaffffffff7800000000000000000000000012f6ffffffb1000000000000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000b4ffffffffffffffffffffffffffffffffffffffffff4c000000000000000091fffffffff4ccccccccccccccccccccccccccccb8000000000000000042fffffffffe470000000000000000000000000000000000c2ffffffee1a0000000000000000000000bcffffffcb000000000000000000000000000000000000000000000000b7ffffff80000000000000000000000000000000000008ffffbf0000000000e4ffe3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffffffffd40000000000000000acffffffffa4000000000005152c63a9faffffffffffbc0b000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000020f1ffffffffff5100000000000000000000000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000000000092ffffffff850200000000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000058ffffffff780000b4ffffffffffffffffffffffffffffffffffffffffff4c00000000000000000bd8fffffffc3d0000000000000000000000000000000000000000000000acfffffffff7500000000000000000003fc6b309000000d6ffffff9e000000000000000000000056ffffffffb000000000001d83c2e3ebdbae5f070000000000000000000095ffffff80000000000000000000000000000000000006ffffc00000000000e6ffe10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ad4ffffffffd40000000000000000acffffffffa40000000000000000000019a5ffffffffffae000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000005cffffffffffec1a000000000000000000000000000000000000000051ffffffff55000000000000000000000058ffffffff78000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000058ffffffff760000b4ffffffffffffffffffffffffffffffffffffffffff4c0000000000000000002ef7ffffffe4140000000000000000000000000000000000000000000012e3ffffffffffb14a07000000094bb6ffffff9f000000c3ffffff880000000000000000000273f9ffffffff670000000061f5ffffffffffffffdb3500000000000000000072ffffff80000000000000000000000000000000000000cffff61e0000003bffffaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029f4ffffffd40000000000000000acffffffffa400000000000000000000000071ffffffffff600000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000a7ffffffffffbb010000000000000000000000000000000000000012f6ffffffb1000000000000000000000058ffffffff78000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff780000000000000070ffffffff74000000000000000000000000000000000000000000000000005fffffffff6600008fcccccccccccccccccccccccccccccccccccccccccc3c0000000000000000000068ffffffffb601000000000000000000000000000000000000000000002ae2fffffffffffff9e2d0dcfbffffffffffed1a000087ffffffbd000000000000000044c8ffffffffffe00c00000051fffffffffffffffffffff12a00000000000000004fffffff8000000000000000000000000000000000000056ffffda573364e9fffc34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000098ffffffffdf0400000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000010e1ffffffffff72000000000000000000000000000000000000000092ffffffff850200000000000000000058ffffffff78000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000075ffffffff53000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffff7500000000000000000000000000000000000000000000001cccffffffffffffffffffffffffffffd42300000021f8ffffff4800000000065ac9fffffffffffff63c0000000be8fffff26f140632b9ffffffbe00000000000000002dffffff800000000000000000000000000000000000000081fefffffffffff85c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000013f2ffffffff4d00000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000003ffdfffffffff92f000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000070ffffffff7400000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000000000000000000000000000000000000000000edcfffffffb3900000000000000000000000000000000000000000000000260e4ffffffffffffffffffffe96e06000000000070fffffff76b031680e8ffffffffffffffed420000000068ffffff460000000002bfffffff1e0000000000000004c7ffff8000000000000000000000000000000000000000003cabe9f9e09a2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fffffffffffffffffffffffffffffffffffffffffffffffffffbbb140000acffffffffa40000000000000000000000000000a9ffffffff9200000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000087ffffffffffd5080000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff78000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000070ffffffff74000000000000000000000048741c0000000000000000000011f5ffffffe60000001d807e5b0800000000000000000000000000000000000000000000000000000000000033f9ffffffe112000000000000000000000000000000000000000000000000054c93c7e9f8f7e2cc964c0900000000000000006bf7ffffffe1f7ffffffffffffffffb31e000000000040bbf8970000000000005bffffff4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff8b0000acffffffffa400000000000000000000000000006bffffffffc400000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000005ccffffffffff930000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000058ffffffff780000000000000070ffffffff740000000000000000000059fffff67b070000000000000002a8ffffffff8800000005e7ffffcd090000000000000000000000000000000000000000000000000000000000006effffffffb10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002097ffffffffffffffffffffbb4100000000000000000001000000000000005dffffff3f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffa80000acffffffffa4000000000000000000000000000052ffffffffd900000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000027f5ffffffffff4a0000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000070ffffffff7400000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000085ffffff7500000000000000000000000000000000000000000000000000000000000000aeffffffff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a6fffffffffffffffaa83600000000000000000000000000000000000000a3fffff511000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000961eafffffffea0aec1cbcccccccccccccccccccccccccccccccccc850000acffffffffa4000000000000000000000000000055ffffffffdf00000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000067ffffffffffe816000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff7800000000000000000000000000000000000000000000000000000000005fffffffff660000000000000070ffffffff740000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000001ffdffffde0100000000000000000000000000000000000000000000000000000000000010dffffffffa350000000000000000000000000000000000000000000000000000000000000030310000000000000000000093ffffffffffffe9811a0000000000000000000000000000000000041441a6ffffff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bccffffffcf0e00000000000000000000000000000000000000000000acffffffffa400000000000000000000000000006effffffffc800000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000b1ffffffffffb3000000000000000000000000000000000000000000000000000000000000000058ffffffff78000000000000000000000000000000000000000000000000000000000075ffffffff530000000000000070ffffffff7400000000000000000000001ebbffffffffffffffffffffffffffff8800000000000000b5ffffff470000000000000000000000000000000000000000000000000000000000000037faffffffde0f000000000000000000000000000000000000000000000000000000002aacfe5c0000000000000000003dffffffffffea6d0800000000000000000000000000000000000000e4ffffffffd95700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019f1ffffff9b00000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000b0ffffffffaa00000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000015e7ffffffffff690000000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000070ffffffff74000000000000000000000000004dc6ffffffffffffffffffffe25a00000000000000004dffffffaf000000000000000000000000000000000000000000000000000000000000000074ffffffffac000000000000000000000000000000000000000000000000000025a5fdffff5c000000000000000000a7ffffffffba14000000000000000000000000000000000000000000e4ffffffef5701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008bffffffff29000000000000000000000000000000000000000000acffffffffa40000000000000000000000000021f7ffffffff6400000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000048fefffffffff6290000000000000000000000000000000000000000000000000000000000005fffffffff6600000000000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000070ffffffff740000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000002e1fffffb1a0000000000000000000000000000000000000000000000000000000000000001b4ffffffff6b0000000000000000000000000000000000000000000000209efcffffffff5b000000000000000000e5ffffffce060000000000000000000000000000000000000000000028417decffff96010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004affffffff86000000000000000000000000000000000000000000acffffffffa400000000000000000000000007bdfffffffffa1700000000000000000000000038ffffffffff1c00000000000000000079ccccccccccccccccccccccccccccccccccccccccccf8ffffffffffc600000000000000000000000000000000000000000000000000000000000075ffffffff53000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000007dffffff7e000000000000000000000000000000000000000000000000000000000000000013e3fffffff83200000000000000000000000000000000000000001b97fafffffffffffb28000000000000000003fdffffff6400000000000000000000000000000000000000000000000000002df6ffff4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036ffffffffb4000000000000000000000000000000000000000000acffffffffa400000000000000000000001fbdffffffffff8c0000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff260000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000019fbffffe20300000000000000000000000000000000000000000000000000000000000000003cfcffffffdb0d00000000000000000000000000000000001790f7ffffffffffffb22f00000000000000000001faffffff5a00000000000000000000000000000000000000191c000000000000b1ffffb100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffce000000000000000000000000000000000000000000acffffffffa4000000000000000013479ef5ffffffffffdd0f0000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b00000000000000000000000000000048741c0000000000000000000011f5ffffffe600000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000adffffff4d0000000000000000000000000000000000000000000000000000000000000000007affffffffa70000000000000000000000000000001389f5ffffffffffffb232000000000000000000000000d8ffffffa5000000000000000000000000000000000007e9fffd37000000000099ffffd600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acffffffffedcccccccccccedbeaffffffffffffffffde1e000000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000070ffffffff7400000000000000000000000000000000004ffffff59c06000000000000000000000000000045ffffffb400000000000000000000000000000000000000000000000000000000000000000001b9ffffffff660000000000000000000000000f82f2ffffffffffffb33300000000000000000000000000008bfffffffe5600000000000000000667a62b0000000000ceffffba0000000002d1ffffd300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffa71700000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000070ffffffff74000000000000000000000000000000000000b5ffffffa5010000000000000000000000000001dbfffffd1e00000000000000000000000000000000000000000000000000000000000000000016e6fffffff72e0000000000000000000c7beeffffffffffffb434000000000000000000000000000000001ef6fffffffe9c2f010000002477e1ffffd4050000000066ffffff9d1b00199cffffff9600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acfffffffffffffffffffffffffffffffffff8ab42000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b0000000000000000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000070ffffffff7400000000000000000000000000000000000023f8ffffff8a000000000000000000000000000075ffffff830000000000000000000000000000000000000000000000000000000000000000000041fdffffffd80b0000000000000974ebffffffffffffb434000000000000000000000000000000000000006effffffffffffeed4d4ecffffffffffff5a0000000002c1fffffffff9fffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acfffffffffffffffffffffef8eed9ba9159110000000000000000000000000000000000000038ffffffffff1c0000000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082ffffffff6d0000000000000000000000000014f8ffffe6040000000000000000000000000000000000000000000000000000000000000000000081ffffffffa200000000076de7ffffffffffffb535000000000000000000000000000000000000000000007cfdfffffffffffffffffffffffffe7f0100000000000fbbffffffffffffffea3f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000010aaffffffffffffffffffe05a00000072ffffff7800000885c61000000000004bd54200000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffd5300000000000000000000000000a5ffffff520000000000000000000000000000000000000000000000000000000000000000000002beffffffff61000000d7fffffffffffaaa360000000000000000000000000000000000000000000000000041cfffffffffffffffffffffbb3600000000000000000151aee4faf1cb7e14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff78000077ffffca0e0000001bfffff53f0000000000000000000000002877b0d8f1fbefd9a75b08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffff73c0000000000000000000000003dffffffb900000000000000000000000000000000000000002cccccccccccccccccccccccccccccdcfffffffff2170000f0fffffffff17d1700000000000000000000000000000000000000000000000000000000408bc9e5f8f1dbbd792f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072ccccccccd6fffffffff7ccccccccccccccccccccc550000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff78000018e8ffffa700000000a5ffffec17000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ffffffffee29000000000000000000000000d4fffffe230000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff60000087f6fffffffffff99a1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffffffffffffffffffffffffffffffffffffffffe5000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff780000004bffffff550000000ce2ffffb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffff791020000000000059bf9ffff640000000090fffff791020000000000059bf9ffff6400000000000000000000000000000017c2fbffffffe01900000000000000000000006dffffff880000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff740000001993f9fffffffffff9991e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cfffffffffffffffffffffffffffffffffffffffffff4000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000043ffffffffde0d000000000000000f95feffffffffff7800000000b8ffffe5070000005cffffff4900000000000000000000000000000000000000000000000000000000000000000000000000000000000002adffffffaa0600000009b5ffffff83000000000002adffffffaa0600000009b5ffffff8300000000000000000000000000000000000000000000000000000000000000000000000ff5ffffea0600000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7400000000001d99fafffffffffff9971d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bd3fffffffffffffffffffffffffffffffffffffffff4000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000db5ffffffe64800000067f4ffffff920300000065ffffffff71000000000000000000005bfaffffffff780000000051ffffff5b00000007eeffffb70000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c7ffffffb80a000dc0ffffffa20000000000000009c7ffffffb80a000dc0ffffffa2000000000000000000000000000000000000000000000000000000000000000000000000009dffffff570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000219ffcfffffffffff9961c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000028effffffff9724b4fffffffb69000000000070ffffffff4500000000000000000000006dffffffff780000000013ffffffaa00000000b7fffffb0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000014dbffffffc421caffffffbd05000000000000000014dbffffffc421caffffffbd050000000000000000000000000000000000000000000040798047000000000000000000000035ffffffbf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a5fdfffffffffff8951b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000000066fbffffffffffffffef4400000000000051ffffffff55000000000000000000000058ffffffff780000000000f6ffffdc000000009affffff3800000000000077ffff9f00000000117cd6f9e79918000000000000000000000000000000000000000000000024ebfffffffaffffffd30f0000000000000000000024ebfffffffaffffffd30f000000000000000000000000000000000000000000008affffff40000000000000000000000000ccffffff27000000000000000000003b2600000000000000000000000000000000000000000000000000000000000000000000000000002babfefffffffffff8931a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000000000042eeffffffffffdb280000000000000012f6ffffffb1000000000000000000000058ffffffff78000000000afefffff100000000acffffff4d0000000000005bffffed20000c7cf2ffffffffffe31e000000000000000000000000000000000000000000000039f6ffffffffffe51d00000000000000000000000039f6ffffffffffe51d0000000000000000000000000000000000000000000028fdffffd70000000000000000000000000065ffffff8e0000000000000000000074fc9f20000000000000000000000000000000000000000000000000000000000000000000000000000030b2fffffffffffff78a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000025808080807c1300000000000000000092ffffffff850200000000000000000058ffffffff780000000046ffffffeb00000003e7ffffff470000000000001efefffff9d6f4ffffffffffffffffb700000000000000000000000000000000000000000000000052fdfffffff230000000000000000000000000000052fdfffffff230000000000000000000000000000000000000000000000091ffffff70000000000000000000000000000bf1ffffed0800000000000000000074fffffa981b000000000000000000000000000000000000000000000000000000000000000000000000000036b8ffffffffffff4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000d4d8d8d8d8d8d8d8d8f1ffffffffe3d8d8d8d8d8d8d8d88a0000000000000000000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000adffffffcc00000051ffffffff2800000000000000adfffffffffffffffff5d5f6ffffff250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009effffff611000000000000000000000000000095ffffff5d00000000000000000073fffffffff7901600000000000000000000000000000000000000000000000000000000000000000000000000003bbeffffffff5c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000fcffffffffffffffffffffffffffffffffffffffffffffa40000000000000000000000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000026ffffffff91000000c9ffffffeb010000000000000018dbfffffffffff4820f0017dfffff630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060ffffffa00000000000000000000000000000002dffffffc40000000000000000003dfefffffffffff48812000000000000000000000000000000000000000000000000000000000000000000000000000041c4ffff5c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000000000000038190000000000002b2600000000000000005cdcffffffffffffffffffffffffffffffff7800000014d3ffffff370000008efdffff93000000000000000000128ee2f9db83130000000085ffff7e00000000ffffffffffffffffffffffffffffffffffffffffffac000000000000001a73b2d1dfd0b1701700000000000000000000000000000000000000000000000000000000000000c8ffffff3800000000000000000000000000000000c5ffffff2c0000000000000000003cc0fffffffffffff1810e000000000000000000000000000000000000000000000000000000000000000000000000000047ca5c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002affffffffd9000000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000014ebf8790000000006d5fd9800000000000000000249a2edffffffffffffffffffffffffff78000000000143a9b700000000002084e01f00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffac00000000000589f8fffffffffffffff68002000000000000000000000000000000000000000000000000000000002fffffffcf00000000000000000000000000000000005dffffff93000000000000000000000040c0ffffffffffffed790b00000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016ffffffffe9000000000000000000000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000000000000a5fffff20000000081ffffff160000000000000000000002306593b4d1e3f2f9feffffffff78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffac0000000006beffffffffffffffffffffffaf0200000000000000000000000000000000000000000000000000000097ffffff68000000000000000000000000000000000008ecfffff00a00000000000000000000000041c1ffffffffffffe972080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f6ffffffff110000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000004affffff9b0000002cfaffffbf000000000000000000000000000000000000000058ffffffff78000000000000000000000000000000000000000000000000024592c8ebfaf7e6cd955204000000000000000000cccccccccccccccccccccccccccccccccccccccccc890000000095ffffffdc5b17041861e3ffffff8000000000000000000000000000000000000000000000000000000cf2fffff30d0000000000000000000000000000000000008dffffff62000000000000000000000000000041c2ffffffffffffe56a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfffffffff4d0000000000000000000000000000000000000000000000c4c8c8c8c8c8c8c8c8ebffffffffd7c8c8c8c8c8c8c8c8800000000000000000000de2ffffec13000002c9fffffa2a000000000000000000000000000000000000000058ffffffff76000000000000000000000000000000000000000000000157daffffffffffffffffffffe46901000000000000000000000000000000000000000000000000000000000000000026fcffffe01400000000001debfffff6180000000000000000000000000000000000000000000000000066ffffff980000000000000000000000000000000000000025feffffca0000000000000000000000000000000042c2ffffffffffffe06304000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dffffffffae000000000000000000000009a8e6991400000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000000096ffffff6300000072ffffff870000000000000000000000000000000000000000005fffffffff660000000249030000000000003b14000000000000001ac3ffffffffffffffffffffffffffffb80b0000000000000000000000000000000000000000000000000000000000000089ffffff5e0000000000000073ffffff7600000000000000000000000000000000000000000000000000cdffffff300000000000000000000000000000000000000000bdffffff31000000000000000000000000000000000043c3ffffffffffffda5b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001af9fffffffe4000000000000000000001acffffffed34000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000003dfeffffc401000021f5ffffdf0900000000000000000000000000000000000000000075ffffffff530000005cffe4811500000010eff9a739000000001ae7ffffffffffffefd6d0e4ffffffffffffbb04000000000000000070ffffffff7400000000000000000000000000000000ccfffffe0f0000000000000022ffffffba00000000000000000000000000000000000000000000000035ffffffc800000000000000000000000000000000000000000055ffffff990000000000000000000000000000000000000043b7fdffffffffffb30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009cffffffffea310000000000000005a2ffffffffe40a0000000000000000000000000001d0ffffffffffff7100000000000000000000000000000008d8fffffb2c000000bcffffff4b00000000000000000000000000000000000000000000a8ffffffff24000000c9ffffffc60000006dfffffffe2400000000bdfffffff18829000000001a7bf4ffffffff6d000000000000000070ffffffff7400000000000000000000000000000000eeffffe4000000000000000000f8ffffdc0000000000000000000000000000000000000000000000009dffffff6000000000000000000000000000000000000000000005e7fffff30d00000000000000000000000000000000000000218ff9ffffffffcc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010dffffffffff88a290000000453cffffffffffe45000000000000000000000000000054ffffffffffffffe90a000000000000000000000000000087ffffff8a00000063ffffffae00000000000000000048741c0000000000000000000011f5ffffffe60000001affffffff90000000bdffffffe5070000000023ebfe9f1600000000000000002cefffffffe9030000000000000070ffffffff7400000000000000000000000000000000fdffffd7000000000000000000ecffffee00000000000000000000000000000000000000000000000ff5ffffee090000000000000000000000000000000000000000000085ffffff68000000000000000000000000000000000029a7fdffffffffffee6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034eeffffffffffffebd4d6f5ffffffffffff70000000000000000000000000000002d4ffffffc5f7ffffff760000000000000000000000000030fbffffe10b000019effffff31c000000000000000059fffff67b070000000000000002a8ffffffff880000004cfffffffa17000000f0ffffff6e0000000000000818000000000000000000000072ffffffff3d0000000000000070ffffffff7400000000000000000000000000000000f2ffffe0000000000000000000f6ffffe000000000000000000000000000000000000000000000006cffffff9000000000000000000000000000000000000000000000001ffdffffcf00000000000000000000000000000029a7fdfffffffffff1810f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ddfffffffffffffffffffffffffff8650000000000000000000000000000005affffffff6cb8ffffffec0d000000000000000000000004cdfffffe49000000adffffff6c000000000000000005e6ffffffffe378230000000033b8fffffffff71d00000062ffffffc000000006ffffffff1c0000000000000000000000000000000000000025ffffffff6b0000000000000070ffffffff7400000000000000000000000000000000d5fffffc09000000000000001affffffc30000000000000000000000000000000000000000000000d3ffffff28000000000000000000000000000000000000000000000000b5ffffff3700000000000000000000000027a5fdfffffffffff488120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7bf1ffffffffffffffffffffbb2c00000000000000000000000000000003d9fffffffa1461ffffffff7c00000000000000000000002dffffffce0100000bfdffffea0900000000000000000047efffffffffffffecd7d3edffffffffffff6b000000005dffffff9b00000002fefffff501000000000000000000000000000000000000001dffffffff800000000000000070ffffffff740000000000000000000000000000000095ffffff4f0000000000000065ffffff81000000000000000000000000000000000000000000003bffffffc0000000000000000000000000000000000000000000000000004effffff9e0000000000000000000026a4fdfffffffffff78f16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d529dcde2f7f5e5bd842c00000000000000000000000000000000005fffffffffa9000df0ffffffef100000000000000000000000b5ffffff6900000092ffffff8d000000000000000000001ebbffffffffffffffffffffffffffff8800000000003cffffff9500000000e0fffff2000000000000000000000000000000000000000064ffffffff710000000000000070ffffffff740000000000000000000000000000000036ffffffd10900000000000fe0fffffc2600000000000000000000000000000000000000000000a3ffffff580000000000000000000000000000000000000000000000000003e2fffff5100000000000000025a3fcfffffffffff9951a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ddfffffffe2f000083ffffffff8200000000000000000000001df2fffff01800000bdffffffc3000000000000000000000004dc6ffffffffffffffffffffe25a0000000000000af5ffffba00000000a4ffffff1600000000000000000000000000000000000042f1ffffffff3d0000000000000070ffffffff740000000000000000000000000000000000acffffffc73c02000342d1ffffff970000000000000000000000000000000000000000000012f7ffffe90600000000000000000000000000000000000000000000000000007effffff6d000000000024a1fcfffffffffffb9c1f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffffb000000012f2fffffff21300000000000000000000006affffffa500000046ffffffc8010000000000000000000000002877b0d8f1fbefd9a75b080000000000000000a4fffff91200000048ffffff680000000000000000000000000000000037a5feffffffffd2010000000000000070ffffffff7400000000000000000000000000000000000ed2fffffffff6e5f6ffffffffc5080000000000000000000000000000000000000000000072ffffff8800000000000000000000000000000000000000000000000000000019fbffffd4000000099bfcfffffffffffda3230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffff3e3d1a76e31000000000000000000000000000000000006e1ffffffff320000000088ffffffff88000000000000000000000001c2ffffff43000000a1ffffff67000000000000000000000000000000000000000000000000000000000000002cfaffff8700000000caffffdc070000000000000000000000054492dffffffffffffff231000000000000000070ffffffff740000000000000000000000000000000000000da4fefffffffffffffffd9a080000000000000000000000000000000000000000000000d8fffffe2200000000000000000000000000000000000000000000000000000000a0ffffff3c00005ffffffffffffeaa2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffd0660600000000000000000000000000006affffffffb4000000000014f4fffffff416000000000000000000000026f7ffffd907000012e8ffffee16000000000000000000000000000000000000000000000000000000000000007efffff9300000002af7ffff860000000000000000003c98edffffffffffffffffdb3400000000000000000070ffffffff7400000000000000000000000000000000000000002d8bccebfaebcc892900000000000000000000000000000000000000000000000041ffffffb800000000000000000000000000000000000000000000000000000000000da8f5ffa3000074ffffffffb02f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffd33300000000000000000000000008e4ffffffff360000000000008cffffffff8e00000000000000000000000079ffffff7e00000055ffffffa20000000000000000000000000000000000000000000000000000000000000004c5ffffdb050000006dfffffe3e00000000000040cdffffffffffffffffffde71090000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffff5000000000000000000000000000000000000000000000000000000000000000000000000074ffffb7350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2ccccccccccccccccd9eafffffffffffffffb54000000000000000000000070ffffffffb80000000000000017f6fffffff71a000000000000000000000004cffffff724000000afffffff40000000000000000000000000000000000000000000000000000000000000000fcaffce07000000007ffff33e00000000007cfeffffffffffffffe9993c0100000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016f9ffffe40300000000000000000000000000000000000000000000000000000000000000000000000074be3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000001755bdfffffffffffa480000000000000000000ae8ffffffff3a000000000000000091ffffffff9300000000000000000000000031fbffffb400000019f0ffffd6020000000000000041cbf3c237000000000057d4f2b828000000000000000000106704000000000000601c000000000064ffffffffffffe88c390200000000000000000000000000000070ffffffff740000000000000000000040b3ecfbecc57a120032bcc84e000040ffffffffffffffffffffffffff5400000000000000000000000078ffffff800000000000000000000000000000000000000c60afddf6f1d8a151040000000000000000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000050efffffffffe60d000000000000000075ffffffffbc0000000000000000001af8fffffff91d00000000000000000000000089ffffef0000000065ffffff140000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000af0ffffffffdb530400000000000000000000000000000000000070ffffffff7400000000000000000064fefffffffffffff16aa4ffff64000040ffffffffffffffffffffffffff54000000000000000000000001ddfffffc1b00000000000000000000000000000000016ae9ffffffffffffffffda52000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000003bf8ffffffff87000000000000000cebffffffff3e0000000000000000000096ffffffff9900000000000000000000000008d9e0510000000000bdec6a0000000000000084ffffffffff7a000000a6ffffffffff56000000000000000000000000000000000000000000000053ffffffffc80d000000000000000000000000000000000000000070ffffffff74000000000000000014f4ffffd7552f4697faffffffff64000040ffffffffffffffffffffffffff54000000000000000000000047ffffffb0000000000000000000000000000000000db0ffffffffffffffffffffffff930400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000008affffffffe6010000000000007affffffffc000000000000000000000001df9fffffffa210000000000000000000000001c05000000000000160b000000000000000080ffffffffff75000000a2ffffffffff5100000000001445000000000000015205000000000000007affffffff3f00000000000000000000000000000000000000000070ffffffff74000000000000000059ffffff310000000036e9ffffff64000033cccccccccccccccccccccccccc420000000000000000000000aeffffff4800000000000000000000000000000004bdffffffffffffffffffffffffffff9e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000001cffffffffff3800000000000feeffffffff430000000000000000000000009affffffff9f00000000000000000000000000000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000040edfd5a000000000cc5ffae0400000000000083ffffffff2100000000000000000000000000000000000000000070ffffffff74000000000000000071fffffe03000000000034ffffff640000000000000000000000000000000000000000000000000000001afbffffde010000000000000000000000000000008dffffffffffffffffffffffffffffffff6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000dbffffffff64000000000080ffffffffc40000000000000000000000000021fbfffffffc260000000000000000000000000000000000000000000000000000000000003bc7f1be31000000000051d1f0b423000000000057fffffc4a0000000febffffa300000000000066ffffffff5900000000000000000000000000000000000000000070ffffffff74000000000000000053ffffff2e000000000014ffffff640000000000000000000000000000000000000000000000000000007effffff7800000000000000000000000000000027fbffffffffffffffffffffffffffffffffee130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000beffffffff7d0000000011f1ffffffff4700000000000000000000000000009fffffffffa50000000000000000000253a7def6f1d6953b000000000000000000000000000000000000000000000000000000000000000000a4ffffe8130000004affffff5700000000001fffffffffe01a000000000000000027917500000000000000000070ffffffff74000000000000000008e4ffffd72d0000000014ffffff64000040ffffffffffffffffffffffffff5400000000000000000002e2fffff91600000000000000000000000000000099ffffffffffffffffffffffffffffffffffff790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000b8ffffffff890000000085ffffffffc800000000000000000000000000000024fcfffffffd2b0000000000000036d1ffffffffffffffffb41a0000000000000000000000000000000000000000000000000000000000000013edffffa400000000a5ffffec140000000000b0ffffffffe6660f0000000746a8fcffff58000000000000000070ffffffff7400000000000000000036eafffffec07c52373dffffff64000040ffffffffffffffffffffffffff540000000000000000004dffffffa800000000000000000000000000000003eaffffffffffffffffffffffffffffffffffffcc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000d2ffffffff7500000014f3ffffffff4900000000000000000000000000000000a1ffffffffab00000000000055f8ffffffffffffffffffffe52d0000000000114100000000000009490000000000000000000000000000000082fffffe2800000026ffffff8200000000001febfffffffffffdddd0dbfbffffffffffd8010000000000000070ffffffff74000000000000000000001b99f9ffffffffffffffffff64000040ffffffffffffffffffffffffff54000000000000000000b4ffffff4000000000000000000000000000000022fffffffffffffffffffffffffffffffffffffffd0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000016fdffffffff490000008bfffffff783000000000000000000000000000000000010c4fdfffffe2f0000000039f9fffffffff4d4d9faffffffffe11600000060f2f7270000000045e8ff430000000000000000000000000000002bffffff8500000000cfffffe000000000000030e7ffffffffffffffffffffffffffd524000000000000000070ffffffff740000000000000000000000000e5895c0e2effaffffff64000033cccccccccccccccccccccccccc4200000000000000001efdffffd7000000000000000000000000000000003bffffffffffffffffffffffffffffffffffffffff1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000087fffffffff50c00000000000000000000000000000000000000000000000000000000000000000000000003d8ffffffd9500500000e6df0ffffffa2000000d2ffffc301000000aeffffde0b000000000000000000000000000005fcffffc500000000a7ffffff21000000000000129ffaffffffffffffffffffec750900000000000000000070ffffffff7400000000000000000000000000000000000014ffffff630000000000000000000000000000000000000000000000000083ffffff70000000000000000000000000000000003bffffffffffffffffffffffffffffffffffffffff1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000044f9ffffffff8b000000000000000000000000000000000000000000000000000000000000000000000000005dffffffc60d00000000000028ebfffffd26000079ffffff6b00000055ffffff8f000000000000000000000000000000f8ffffe9000000009cffffff4500000000000000001a71b0ddf0f9e6cf9c520b000000000000000000000070ffffffff7400000000000000000000000000000000000028ffffff5300000000000000000000000000000000000000000000000004e6fffff6110000000000000000000000000000000020fffffffffffffffffffffffffffffffffffffffc0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000016cf5ffffffffd60d00000000000000000000035aacd9f4f1d6b05b030000000000000000000000000000000000b3fffff61d000000000000000053ffffff7a000006d7fffff21e000000b9fffffd380000000000000000000000000021fffffff200000000c5ffffff4e00000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000203300000000000065ffffff29000004b9f47500000000000097f59900000000000000000053ffffffa0000000000000000000000000000000000002e7ffffffffffffffffffffffffffffffffffffc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000010d1d4881deffffffffffd620000000000000000000000000e2ffffffffffffffc60f00000000000000000000000000000000eeffffa700000000000000000001e6ffffb600000041ffffffb700000024f8ffffd40600000000000000000000000073ffffffe00000001afcffffff3c00000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000001ef2ffc8570900044eecffffd700000048ffffee000000000020ffffff170000000000000000baffffff3900000000000000000000000000000000000096ffffffffffffffffffffffffffffffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffffc930e0000000000000000000000000070ac593a4fc2ffffff9700000000000000000000000000000008ffffff7700000000000000000000b8ffffcf00000000a4ffffff5d00000080ffffff81000000000000000000000008e4ffffffb200000090fffffffe100000fcffffffe8000000000000000000000000000000000000000000000070ffffffff7400000000000000000055fdfffffffbeafaffffffff5000000072ffffff11000000004affffff390000000000000023feffffd00000000000000000000000000000000000000024faffffffffffffffffffffffffffffffffec100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffde8723000000000000000000000000000000000000000014ffffffd600000000000000000000000000000008ffffff7800000000000000000000b9ffffcf0000000017efffffec16000007dbfffffa2d0000000000000000000032ffffffff68000000d6ffffffc4000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000045dbfffffffffffffffd71000000008dffffff2c0000000065ffffff540000000000000089ffffff69000000000000000000000000000000000000000089ffffffffffffffffffffffffffffffff67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffe971a0000000000000000000000000000000000000000000049ffffffbe00000000000000000000000000000000eeffffaa00000000000000000002e9ffffb600000000006affffffa900000046ffffffca030000000000000000000058c7fff0100000002aa2f7ff5c000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000358a4dbf1f8de9d2d0000000000a8ffffff470000000080ffffff6f00000000000006eaffffe70c000000000000000000000000000000000000000004baffffffffffffffffffffffffffff9a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2ccccccccccccd1dff5fffffffffff99211000000000000000000000000000000000f426db0fcfffffb4300000000000000000000000000000000b2fffff820000000000000000057ffffff79000000000002caffffff4f000000a9ffffff730000000000000000000000002e4b000000000000116502000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffff61000000009affffff8900000000000059fffccd35000000000000000000000000000000000000000000000badffffffffffffffffffffffff900300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000022a73d9ffffffffe0340000000000000000000000000000003bffffffffffc63b00000000000000000000000000000000005effffffc90e0000000000002aedfffffe2700000000000032fcffffe50f000019f0fffff62300000000000000000000000000000000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffff6f00000000a8ffffff97000000000000000000000000000000000000000000000000000000000000000000000169e9ffffffffffffffffd950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000479fdfffffff032000000000000000000000000000001e6ffff8b250000000000000000000000000000000000000004daffffffdb540700001070f2ffffffa50000000000000000b6ffffff5100000092ffffff7500000000000000000000000000000000000000000000000000fcffffffe80000000000000000000000000000000000000041cbf3c237000000000057d4f2b82800000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff980000000000000000000000000000000000000000000000000000000000000000000000000c5faedcf5f0d7a0510400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000067ffffffffdd0b000000000000000000000000000097ffff7a0000000000000000000000000000000000000000003cfafffffffff5d5dafbffffffffe318000000000000004affffffd20500002bfaffffe91200000041cbf3c237000000000057d4f2b82800000000000000fcffffffe80000000000000000000000000000000000002cf8fffffff32300000046ffffffffe310000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff740000001471bde1f9f4d599350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000c2ffffffff7600000000000000000000001470aeeafffff7cda46d1b00000000000000000000000000000000000059f8ffffffffffffffffffffe62f0000000000000009defffffc35000001c3ffffff560000002cf8fffffff32300000046ffffffffe310000000000000fcffffffe800000000000000000000000000000000000084ffffffffff7a000000a6ffffffffff56000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000030ffffffffffffffff8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000060ffffffffd90000000000000000001199f7fffffffffffffffffffec03b000000000000000000000000000000000038d2ffffffffffffffffb51b000000000000000085ffffff8c00000061ffffffb00000000084ffffffffff7a000000a6ffffffffff56000000000000fcffffffe800000000000000000000000000000000000080ffffffffff75000000a2ffffffffff51000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000d0ac533b63e5ffffff49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000028ffffffffff170000000000000041e5ffffffffffffffffffffffffffffa50b000000000000000000000000000000000253a6ddf6f0d5943b00000000000000000028f9ffffdc09000012ebfffff01a0000000080ffffffffff75000000a2ffffffffff51000000000000fcffffffe800000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff740000000000000000005cffffff90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000016ffffffffff3200000000000043f7ffffffffffffecd0c5d5f9ffffffffffc60f000000000000000000000000000000000000000000000000000000000000000000befffffe410000009bffffff64000000000026f6fffffff01e0000003ffeffffffdf0c000000000000fcffffffe8000000000000000000000000000000000000003bc7f1be31000000000051d1f0b42300000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000000000000079ffffff83000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000025ffffffffff2e000000000027f5fffffffffe9d33000000000850c6ffffffff5800000000000000000000000000000000000000000000000000000000000000005cffffff9a00000039feffffbd000000000000003bc7f1be31000000000051d1f0b42300000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000000017499ffdfffff626000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000004dffffffffff170000000001c2fffffffff24100000000000000000065f6ff9a0000000000000000000044ffff2800000000000000000000000000000000000010e8ffffe40f000004d1fffff5220000000000000000000000000000000000000000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000088ffffffffffdb3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000009effffffffea010000000056fffffffffd3e00000000000000000000002459040000000000000000000044ffff2800000000000000000000000000000000000091ffffff4e0000006dffffff72000000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000004ffffff59c06000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000045fffffb984b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000031fcffffffff9e0000000000c3ffffffff900000000000000000000000000000000000000000000000000044ffff28000000000000000000000000000000000000d0ffffa800000000acffffc9020000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe8000000000000000000000000000000b5ffffffa5010000000000000000000000000000000070ffffffff7400000000000000000000000000003eddffffaa00000000000000000000000070ffffffff74000000000006f1ffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000003ae9fffffffffe360000000027fffffffffb180000000000000000000000000000000000000031470000000044ffff28000000005b290000000000000000000000003fd5ec15000000002bc5f92c000000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe800000000000000000000000000000023f8ffffff8a0000000000000000000000000000000070ffffffff740000000000000000000000000034f4fffff31b00000000000000000000000070ffffffff74000000000000abffff6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000001751acfeffffffffff9c000000000068ffffffffb20000000000000000000000000000000000000001c8ffb425000044ffff28000033c5ffb9000000000000000000000000000120000000000000002100000000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe80000000000000000000000000000000082ffffffff6d00000000000000000000000000000070ffffffff7400000000000000000000000023e9ffffff730000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2cccccccccccccedbecffffffffffffffffb7080000000000a3ffffffff73000000000000000000000000000000000000001ee2fffffa8c0e41ffff24179dfeffffd412000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffff60f00000000000000000000000000000009dffffffffd53000000000000000000000000000070ffffffff74000000000000000000000015dbffffffd3040000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffb8f07000000000000ccffffffff3f00000000000000000000000000000000000000000a82f7ffffe669fffa63f0fffff06f0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffff7c000000000000000000000000000000004ffffffffff73c0000000000000000000000000070ffffffff74000000000000000000000bcafffffffe3d000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffff2a12c0000000000000000deffffffff270000000000000000000000000000000000000000000020aefffff6fef3fdfffe9c15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffffff31c00000000000000000000000000000000b3ffffffffee2900000000000000000000000070ffffffff7400000000000000000004b5ffffffffa000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffdf0e3d4ae7f4d0900000000000000000000efffffffff170000000000000000000000000000000000000000000000003eacf7fffff7a6320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffffffc40700000000000000000000000000000017c2fbffffffe019000000000000000000000070ffffffff740000000000000000009dffffffffee1600000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeffffffff170000000000000000000000000000000000000000000000097cebffffffffe56e0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffff4ffffb91200000000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000000000082fffffffee1470000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbffffffff260000000000000000000000000000000000000000000055e1ffffddf9f0eaffffd645000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff9cdaffffe7782d0b061c5373080000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000c8ffffffff4000000000000000000000000000000000000000002cbeffffffb547ffff35c5ffffffb12200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff8746ffffffffffffffffffff59000088ffffffffffffffffff9800000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000009cffffffff720000000000000000000000000000000000000026fcffffda4c0042ffff26015ce4fffff10e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff75008fffffffffffffffffff83000088ffffffffffffffffff9800000000000000000000000070ffffffff740000000000000000000000000000003819000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000000000005fffffffffb40000000000000000000000000000000000000000b1f27506000044ffff2800000b83f78700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff640003a9ffffffffffffffffaa00007bffffffffffffffffff9800000000000000000000000070ffffffff74000000000000000000000000000014ebf8790000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000001ffefffffffc19000000000000000000000000000000000000001c170000000044ffff2800000000200c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff4e00000284fcffffffffffffd0000018b4cccccccce7ffffff9800000000000000000000000070ffffffff740000000000000000000000000000a5fffff20000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000000b5ffffffff970000000000000000000000000000000000000000000000000044ffff2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffd91000000000268fd3f3f8e5c47c000000000000000088ffffff9800000000000000000000000070ffffffff74000000000000000000000000004affffff9b0000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff7800000000000000000042fffffffffe4800000000000000000000000000000000000000000000000044ffff28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000000000de2ffffec130000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffff71000000000000000000005bfaffffffff7800000000000000000000acfffffffff7540000000000000000003fc6b3090000000000000000000044ffff28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff7400000000000000000000000096ffffff63000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000012e3ffffffffffb44c07000000094bb6ffffff9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff7400000000000000000000003dfeffffc401000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051ffffffff55000000000000000000000058ffffffff7800000000000000000000002ae2fffffffffffffae3d0dcfbffffffffffed1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000008d8fffffb2c00000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f6ffffffb1000000000000000000000058ffffffff780000000000000000000000001cccffffffffffffffffffffffffffffd4230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000087ffffff8a0000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092ffffffff850200000000000000000058ffffffff78000000000000000000000000000260e4ffffffffffffffffffffe96e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000000000000000000000000030fbffffe10b0000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000000000000000054c93c7e9f8f7e2cc964c090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000004cdfffffe49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000000000000000000000002dffffffce01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000004ffffff59c06000000000000000000b5ffffff6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000b5ffffffa50100000000000000001df2fffff0180000000000000000000000000000000000003eddffffaa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000023f8ffffff8a0000000000000000006affffffa5000000000000000000000000000000000034f4fffff31b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000082ffffffff6d000000000000000001c2ffffff4300000000000000000000000000000023e9ffffff7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000009dffffffffd53000000000000000026f7ffffd9070000000000000000000000000015dbffffffd3040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000000004ffffffffff73c000000000000000079ffffff7e0000000000000000000000000bcafffffffe3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075ffffffff530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000b3ffffffffee290000000000000004cffffff7240000000000000000000004b5ffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000000000017c2fbffffffe0190000000000000031fbffffb4000000000000000000009dffffffffee1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000000000000000089ffffef00000000000000000082fffffffee14700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000000000000000008d9e05100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000001141000000000000000000000000000000000000000000000000000000001c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000060f2f72700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000d2ffffc3010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000079ffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000006d7fffff21e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000041ffffffb700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000a4ffffff5d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000017efffffec160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000006affffffa90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000002caffffff4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000032fcffffe50f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000b6ffffff51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000004affffffd205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000009defffffc3500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000085ffffff8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000028f9ffffdc090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000befffffe41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000005cffffff9a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000010e8ffffe40f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000091ffffff4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000d0ffffa8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800003fd5ec15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ab5cccccccce7ffffff9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffffffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffffffffff9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: Lato-Regular + m_EditorClassIdentifier: + hashCode: 0 + material: {fileID: 7453642021753212536} + materialHashCode: 0 + m_Version: 1.1.0 + m_SourceFontFileGUID: 49342641ea2b7e6429da3245744bb92b + m_SourceFontFile_EditorRef: {fileID: 0} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FamilyName: Lato + m_StyleName: Regular + m_PointSize: 55 + m_Scale: 1 + m_LineHeight: 66 + m_AscentLine: 54.285 + m_CapLine: 39 + m_MeanLine: 28 + m_Baseline: 0 + m_DescentLine: -11.715 + m_SuperscriptOffset: 54.285 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -11.715 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -5.5 + m_UnderlineThickness: 3.3 + m_StrikethroughOffset: 11.2 + m_StrikethroughThickness: 3.3 + m_TabWidth: 11 + m_GlyphTable: + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 11 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 4 + m_Metrics: + m_Width: 7 + m_Height: 39 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 77 + m_Y: 174 + m_Width: 7 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 5 + m_Metrics: + m_Width: 14 + m_Height: 14 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 188 + m_Y: 388 + m_Width: 14 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 6 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 249 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 7 + m_Metrics: + m_Width: 28 + m_Height: 52 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 239 + m_Y: 230 + m_Width: 28 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 8 + m_Metrics: + m_Width: 41 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 1 + m_Y: 118 + m_Width: 41 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 9 + m_Metrics: + m_Width: 37 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 466 + m_Y: 1 + m_Width: 37 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 10 + m_Metrics: + m_Width: 5 + m_Height: 14 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 13 + m_GlyphRect: + m_X: 35 + m_Y: 208 + m_Width: 5 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 11 + m_Metrics: + m_Width: 12 + m_Height: 51 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 43 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 550 + m_Y: 118 + m_Width: 12 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 12 + m_Metrics: + m_Width: 11 + m_Height: 51 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 43 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 367 + m_Y: 109 + m_Width: 11 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 13 + m_Metrics: + m_Width: 18 + m_Height: 18 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 57 + m_Y: 402 + m_Width: 18 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 14 + m_Metrics: + m_Width: 28 + m_Height: 27 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 32 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 625 + m_Y: 1 + m_Width: 28 + m_Height: 27 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 15 + m_Metrics: + m_Width: 8 + m_Height: 14 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 6 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 120 + m_Y: 298 + m_Width: 8 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 16 + m_Metrics: + m_Width: 15 + m_Height: 4 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 188 + m_Y: 376 + m_Width: 15 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 17 + m_Metrics: + m_Width: 8 + m_Height: 7 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 119 + m_Y: 314 + m_Width: 8 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 233 + m_Y: 331 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 19 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 33 + m_Y: 265 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 20 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 465 + m_Y: 164 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 21 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 465 + m_Y: 42 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 22 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 420 + m_Y: 72 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 23 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 290 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 24 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 655 + m_Y: 29 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 25 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 380 + m_Y: 99 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 26 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 625 + m_Y: 30 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 27 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 419 + m_Y: 113 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 28 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 592 + m_Y: 114 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 8 + m_Height: 27 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 27 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 120 + m_Y: 252 + m_Width: 8 + m_Height: 27 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 8 + m_Height: 35 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 27 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 121 + m_Y: 205 + m_Width: 8 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 22 + m_Height: 25 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 288 + m_Y: 334 + m_Width: 22 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 32 + m_Metrics: + m_Width: 24 + m_Height: 13 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 292 + m_Y: 289 + m_Width: 24 + m_Height: 13 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 22 + m_Height: 25 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 257 + m_Y: 352 + m_Width: 22 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 34 + m_Metrics: + m_Width: 21 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 269 + m_Y: 241 + m_Width: 21 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 35 + m_Metrics: + m_Width: 42 + m_Height: 44 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 1 + m_Y: 42 + m_Width: 42 + m_Height: 44 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 36 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 215 + m_Y: 52 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 29 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 36 + m_GlyphRect: + m_X: 1 + m_Y: 372 + m_Width: 29 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 38 + m_Metrics: + m_Width: 34 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 38 + m_GlyphRect: + m_X: 168 + m_Y: 183 + m_Width: 34 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 212 + m_Y: 134 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 40 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 494 + m_Y: 91 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 41 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 465 + m_Y: 123 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 172 + m_Y: 142 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 43 + m_Metrics: + m_Width: 33 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 131 + m_Y: 186 + m_Width: 33 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 44 + m_Metrics: + m_Width: 7 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 77 + m_Y: 215 + m_Width: 7 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 45 + m_Metrics: + m_Width: 19 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 359 + m_Y: 212 + m_Width: 19 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 46 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 130 + m_Y: 278 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 47 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 435 + m_Y: 217 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 48 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 51 + m_GlyphRect: + m_X: 45 + m_Y: 42 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 49 + m_Metrics: + m_Width: 33 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 166 + m_Y: 224 + m_Width: 33 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 50 + m_Metrics: + m_Width: 40 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 302 + m_Y: 1 + m_Width: 40 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 565 + m_Y: 31 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 52 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 174 + m_Y: 1 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 53 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 33 + m_Y: 306 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 54 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 535 + m_Y: 34 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 55 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 208 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 56 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 35 + m_Y: 224 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 215 + m_Y: 93 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 56 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 56 + m_GlyphRect: + m_X: 64 + m_Y: 1 + m_Width: 56 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 131 + m_Y: 145 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 60 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 249 + m_Y: 148 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 61 + m_Metrics: + m_Width: 31 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 86 + m_Y: 303 + m_Width: 31 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 62 + m_Metrics: + m_Width: 12 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 344 + m_Y: 252 + m_Width: 12 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 63 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 208 + m_Y: 351 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 11 + m_Height: 50 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 148 + m_Y: 413 + m_Width: 11 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 65 + m_Metrics: + m_Width: 24 + m_Height: 18 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 292 + m_Y: 269 + m_Width: 24 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 22 + m_Height: 4 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: -4 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 154 + m_Y: 357 + m_Width: 22 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 67 + m_Metrics: + m_Width: 11 + m_Height: 8 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 185 + m_Y: 404 + m_Width: 11 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 1 + m_Y: 413 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 25 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 493 + m_Y: 132 + m_Width: 25 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 26 + m_GlyphRect: + m_X: 292 + m_Y: 304 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 26 + m_Height: 40 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 592 + m_Y: 72 + m_Width: 26 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 25 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 465 + m_Y: 205 + m_Width: 25 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 19 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 358 + m_Y: 253 + m_Width: 19 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 27 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 465 + m_Y: 83 + m_Width: 27 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 24 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 519 + m_Y: 186 + m_Width: 24 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 8 + m_Height: 40 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 121 + m_Y: 163 + m_Width: 8 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 77 + m_Metrics: + m_Width: 13 + m_Height: 50 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 450 + m_Y: 72 + m_Width: 13 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 24 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 492 + m_Y: 213 + m_Width: 24 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 6 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 292 + m_Y: 97 + m_Width: 6 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 80 + m_Metrics: + m_Width: 38 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 426 + m_Y: 1 + m_Width: 38 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 24 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 318 + m_Y: 230 + m_Width: 24 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 28 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 565 + m_Y: 1 + m_Width: 28 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 83 + m_Metrics: + m_Width: 25 + m_Height: 37 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 492 + m_Y: 174 + m_Width: 25 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 84 + m_Metrics: + m_Width: 26 + m_Height: 37 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 410 + m_Y: 154 + m_Width: 26 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 17 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 129 + m_Y: 390 + m_Width: 17 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 21 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 129 + m_Y: 360 + m_Width: 21 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 19 + m_Height: 37 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 358 + m_Y: 294 + m_Width: 19 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 24 + m_Height: 28 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 318 + m_Y: 260 + m_Width: 24 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 28 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 595 + m_Y: 1 + m_Width: 28 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 90 + m_Metrics: + m_Width: 42 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 1 + m_Y: 88 + m_Width: 42 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 91 + m_Metrics: + m_Width: 27 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 714 + m_Y: 1 + m_Width: 27 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 92 + m_Metrics: + m_Width: 28 + m_Height: 37 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 329 + m_Y: 191 + m_Width: 28 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 263 + m_Y: 322 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 94 + m_Metrics: + m_Width: 14 + m_Height: 50 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 276 + m_Y: 189 + m_Width: 14 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 95 + m_Metrics: + m_Width: 5 + m_Height: 51 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 292 + m_Y: 139 + m_Width: 5 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 14 + m_Height: 50 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 449 + m_Y: 124 + m_Width: 14 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 97 + m_Metrics: + m_Width: 26 + m_Height: 11 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 22 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 564 + m_Y: 122 + m_Width: 26 + m_Height: 11 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 98 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 11 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 99 + m_Metrics: + m_Width: 7 + m_Height: 37 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 199 + m_Y: 277 + m_Width: 7 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 100 + m_Metrics: + m_Width: 26 + m_Height: 41 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 35 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 533 + m_Y: 75 + m_Width: 26 + m_Height: 41 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 101 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 331 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 102 + m_Metrics: + m_Width: 26 + m_Height: 26 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 380 + m_Y: 180 + m_Width: 26 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 103 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 33 + m_Y: 347 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 104 + m_Metrics: + m_Width: 5 + m_Height: 51 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 201 + m_Y: 224 + m_Width: 5 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 105 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 317 + m_Y: 304 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 106 + m_Metrics: + m_Width: 17 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 106 + m_Y: 396 + m_Width: 17 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 107 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 89 + m_Y: 42 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 108 + m_Metrics: + m_Width: 15 + m_Height: 17 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 171 + m_Y: 376 + m_Width: 15 + m_Height: 17 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 109 + m_Metrics: + m_Width: 19 + m_Height: 23 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 65 + m_Y: 357 + m_Width: 19 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 110 + m_Metrics: + m_Width: 24 + m_Height: 12 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 20 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 318 + m_Y: 290 + m_Width: 24 + m_Height: 12 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 111 + m_Metrics: + m_Width: 15 + m_Height: 4 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 188 + m_Y: 382 + m_Width: 15 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 112 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 45 + m_Y: 83 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 113 + m_Metrics: + m_Width: 17 + m_Height: 3 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 106 + m_Y: 404 + m_Width: 17 + m_Height: 3 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 114 + m_Metrics: + m_Width: 19 + m_Height: 18 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 65 + m_Y: 382 + m_Width: 19 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 115 + m_Metrics: + m_Width: 28 + m_Height: 31 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 33 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 535 + m_Y: 1 + m_Width: 28 + m_Height: 31 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 116 + m_Metrics: + m_Width: 15 + m_Height: 20 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 44 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 341 + m_Y: 304 + m_Width: 15 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 117 + m_Metrics: + m_Width: 15 + m_Height: 20 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 341 + m_Y: 326 + m_Width: 15 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 118 + m_Metrics: + m_Width: 12 + m_Height: 8 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 148 + m_Y: 403 + m_Width: 12 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 119 + m_Metrics: + m_Width: 24 + m_Height: 37 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 292 + m_Y: 230 + m_Width: 24 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 120 + m_Metrics: + m_Width: 35 + m_Height: 45 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 300 + m_Y: 101 + m_Width: 35 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 121 + m_Metrics: + m_Width: 9 + m_Height: 8 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 20 + m_HorizontalAdvance: 15 + m_GlyphRect: + m_X: 120 + m_Y: 242 + m_Width: 9 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 122 + m_Metrics: + m_Width: 11 + m_Height: 10 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 1 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 217 + m_Y: 396 + m_Width: 11 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 123 + m_Metrics: + m_Width: 13 + m_Height: 20 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 344 + m_Y: 230 + m_Width: 13 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 124 + m_Metrics: + m_Width: 18 + m_Height: 17 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 178 + m_Y: 357 + m_Width: 18 + m_Height: 17 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 125 + m_Metrics: + m_Width: 18 + m_Height: 23 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 86 + m_Y: 384 + m_Width: 18 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 126 + m_Metrics: + m_Width: 37 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 426 + m_Y: 31 + m_Width: 37 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 127 + m_Metrics: + m_Width: 36 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 382 + m_Y: 58 + m_Width: 36 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 128 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 172 + m_Y: 101 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 129 + m_Metrics: + m_Width: 21 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 269 + m_Y: 282 + m_Width: 21 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 130 + m_Metrics: + m_Width: 38 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 132 + m_Y: 94 + m_Width: 38 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 131 + m_Metrics: + m_Width: 38 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 386 + m_Y: 1 + m_Width: 38 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 132 + m_Metrics: + m_Width: 38 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 302 + m_Y: 42 + m_Width: 38 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 133 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 342 + m_Y: 42 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 134 + m_Metrics: + m_Width: 38 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 260 + m_Y: 47 + m_Width: 38 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 135 + m_Metrics: + m_Width: 38 + m_Height: 50 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 133 + m_Y: 42 + m_Width: 38 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 136 + m_Metrics: + m_Width: 50 + m_Height: 39 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 51 + m_GlyphRect: + m_X: 122 + m_Y: 1 + m_Width: 50 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 137 + m_Metrics: + m_Width: 34 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 38 + m_GlyphRect: + m_X: 209 + m_Y: 175 + m_Width: 34 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 138 + m_Metrics: + m_Width: 26 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 684 + m_Y: 43 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 139 + m_Metrics: + m_Width: 26 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 654 + m_Y: 70 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 140 + m_Metrics: + m_Width: 26 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 623 + m_Y: 71 + m_Width: 26 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 141 + m_Metrics: + m_Width: 26 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 564 + m_Y: 72 + m_Width: 26 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 142 + m_Metrics: + m_Width: 15 + m_Height: 49 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 69 + m_Y: 256 + m_Width: 15 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 143 + m_Metrics: + m_Width: 15 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 547 + m_Y: 171 + m_Width: 15 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 144 + m_Metrics: + m_Width: 19 + m_Height: 48 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 65 + m_Y: 307 + m_Width: 19 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 145 + m_Metrics: + m_Width: 19 + m_Height: 48 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 359 + m_Y: 162 + m_Width: 19 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 146 + m_Metrics: + m_Width: 40 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 344 + m_Y: 1 + m_Width: 40 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 147 + m_Metrics: + m_Width: 33 + m_Height: 47 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 86 + m_Y: 163 + m_Width: 33 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 148 + m_Metrics: + m_Width: 40 + m_Height: 49 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 218 + m_Y: 1 + m_Width: 40 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 149 + m_Metrics: + m_Width: 40 + m_Height: 49 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 173 + m_Y: 50 + m_Width: 40 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 150 + m_Metrics: + m_Width: 40 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 89 + m_Y: 113 + m_Width: 40 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 151 + m_Metrics: + m_Width: 40 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 1 + m_Y: 159 + m_Width: 40 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 152 + m_Metrics: + m_Width: 40 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 44 + m_Y: 124 + m_Width: 40 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 153 + m_Metrics: + m_Width: 26 + m_Height: 26 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 522 + m_Y: 118 + m_Width: 26 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 154 + m_Metrics: + m_Width: 40 + m_Height: 44 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 41 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 260 + m_Y: 1 + m_Width: 40 + m_Height: 44 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 155 + m_Metrics: + m_Width: 32 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 131 + m_Y: 227 + m_Width: 32 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 156 + m_Metrics: + m_Width: 32 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 165 + m_Y: 265 + m_Width: 32 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 157 + m_Metrics: + m_Width: 32 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 43 + m_Y: 174 + m_Width: 32 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 158 + m_Metrics: + m_Width: 32 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 86 + m_Y: 212 + m_Width: 32 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 159 + m_Metrics: + m_Width: 35 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 255 + m_Y: 97 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 160 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 504 + m_Y: 50 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 161 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 594 + m_Y: 31 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 162 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 238 + m_Y: 284 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 163 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 208 + m_Y: 310 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 164 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 164 + m_Y: 316 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 165 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 129 + m_Y: 319 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 166 + m_Metrics: + m_Width: 23 + m_Height: 38 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 86 + m_Y: 344 + m_Width: 23 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 167 + m_Metrics: + m_Width: 23 + m_Height: 41 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 41 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 379 + m_Y: 290 + m_Width: 23 + m_Height: 41 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 168 + m_Metrics: + m_Width: 41 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 89 + m_Y: 83 + m_Width: 41 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 169 + m_Metrics: + m_Width: 23 + m_Height: 37 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 26 + m_GlyphRect: + m_X: 32 + m_Y: 388 + m_Width: 23 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 170 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 438 + m_Y: 176 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 171 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 408 + m_Y: 193 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 172 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 380 + m_Y: 208 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 173 + m_Metrics: + m_Width: 25 + m_Height: 38 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 520 + m_Y: 146 + m_Width: 25 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 174 + m_Metrics: + m_Width: 11 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 204 + m_Y: 396 + m_Width: 11 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 175 + m_Metrics: + m_Width: 12 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 171 + m_Y: 395 + m_Width: 12 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 176 + m_Metrics: + m_Width: 17 + m_Height: 39 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 189 + m_Y: 316 + m_Width: 17 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 177 + m_Metrics: + m_Width: 17 + m_Height: 38 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 152 + m_Y: 363 + m_Width: 17 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 178 + m_Metrics: + m_Width: 27 + m_Height: 40 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 685 + m_Y: 1 + m_Width: 27 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 179 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 407 + m_Y: 234 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 180 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 337 + m_Y: 109 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 181 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 299 + m_Y: 148 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 182 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 329 + m_Y: 150 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 183 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 299 + m_Y: 189 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 184 + m_Metrics: + m_Width: 28 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 380 + m_Y: 140 + m_Width: 28 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 185 + m_Metrics: + m_Width: 28 + m_Height: 26 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 655 + m_Y: 1 + m_Width: 28 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 186 + m_Metrics: + m_Width: 29 + m_Height: 33 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 208 + m_Y: 225 + m_Width: 29 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 187 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 380 + m_Y: 249 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 188 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 461 + m_Y: 235 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 189 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 433 + m_Y: 258 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 190 + m_Metrics: + m_Width: 24 + m_Height: 38 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 406 + m_Y: 275 + m_Width: 24 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 191 + m_Metrics: + m_Width: 28 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 208 + m_Y: 260 + m_Width: 28 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 192 + m_Metrics: + m_Width: 25 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 564 + m_Y: 135 + m_Width: 25 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 193 + m_Metrics: + m_Width: 28 + m_Height: 47 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 505 + m_Y: 1 + m_Width: 28 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 229 + m_Metrics: + m_Width: 23 + m_Height: 4 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 233 + m_Y: 325 + m_Width: 23 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 230 + m_Metrics: + m_Width: 37 + m_Height: 4 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 382 + m_Y: 52 + m_Width: 37 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 231 + m_Metrics: + m_Width: 8 + m_Height: 15 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 120 + m_Y: 281 + m_Width: 8 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 232 + m_Metrics: + m_Width: 7 + m_Height: 16 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 495 + m_Y: 42 + m_Width: 7 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 233 + m_Metrics: + m_Width: 7 + m_Height: 15 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 410 + m_Y: 99 + m_Width: 7 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 234 + m_Metrics: + m_Width: 16 + m_Height: 15 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 362 + m_Width: 16 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 235 + m_Metrics: + m_Width: 16 + m_Height: 16 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 344 + m_Width: 16 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 236 + m_Metrics: + m_Width: 16 + m_Height: 15 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 379 + m_Width: 16 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 237 + m_Metrics: + m_Width: 26 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 743 + m_Y: 1 + m_Width: 26 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 238 + m_Metrics: + m_Width: 26 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 714 + m_Y: 31 + m_Width: 26 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 239 + m_Metrics: + m_Width: 22 + m_Height: 20 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 232 + m_Y: 376 + m_Width: 22 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 240 + m_Metrics: + m_Width: 36 + m_Height: 7 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 300 + m_Y: 92 + m_Width: 36 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 241 + m_Metrics: + m_Width: 61 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 63 + m_GlyphRect: + m_X: 1 + m_Y: 1 + m_Width: 61 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 242 + m_Metrics: + m_Width: 10 + m_Height: 23 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 185 + m_Y: 414 + m_Width: 10 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 243 + m_Metrics: + m_Width: 10 + m_Height: 23 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 161 + m_Y: 436 + m_Width: 10 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 244 + m_Metrics: + m_Width: 29 + m_Height: 39 + m_HorizontalBearingX: -6 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 245 + m_Y: 189 + m_Width: 29 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 245 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 86 + m_Y: 262 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 246 + m_Metrics: + m_Width: 36 + m_Height: 16 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 342 + m_Y: 91 + m_Width: 36 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 4 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 5 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 6 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 8 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 11 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 12 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 16 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 28 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 32 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 35 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 43 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 44 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 45 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 50 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 60 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 61 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 62 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 63 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 65 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 91 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 94 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 95 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 97 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 98 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 161 + m_GlyphIndex: 99 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 162 + m_GlyphIndex: 100 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 163 + m_GlyphIndex: 101 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 164 + m_GlyphIndex: 102 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 165 + m_GlyphIndex: 103 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 166 + m_GlyphIndex: 104 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 167 + m_GlyphIndex: 105 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 168 + m_GlyphIndex: 106 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 169 + m_GlyphIndex: 107 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 170 + m_GlyphIndex: 108 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 171 + m_GlyphIndex: 109 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 172 + m_GlyphIndex: 110 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 173 + m_GlyphIndex: 111 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 174 + m_GlyphIndex: 112 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 175 + m_GlyphIndex: 113 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 176 + m_GlyphIndex: 114 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 177 + m_GlyphIndex: 115 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 178 + m_GlyphIndex: 116 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 179 + m_GlyphIndex: 117 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 180 + m_GlyphIndex: 118 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 181 + m_GlyphIndex: 119 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 182 + m_GlyphIndex: 120 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 183 + m_GlyphIndex: 121 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 184 + m_GlyphIndex: 122 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 185 + m_GlyphIndex: 123 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 186 + m_GlyphIndex: 124 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 187 + m_GlyphIndex: 125 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 188 + m_GlyphIndex: 126 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 189 + m_GlyphIndex: 127 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 190 + m_GlyphIndex: 128 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 191 + m_GlyphIndex: 129 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 192 + m_GlyphIndex: 130 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 193 + m_GlyphIndex: 131 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 194 + m_GlyphIndex: 132 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 195 + m_GlyphIndex: 133 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 196 + m_GlyphIndex: 134 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 197 + m_GlyphIndex: 135 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 198 + m_GlyphIndex: 136 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 199 + m_GlyphIndex: 137 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 200 + m_GlyphIndex: 138 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 201 + m_GlyphIndex: 139 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 202 + m_GlyphIndex: 140 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 203 + m_GlyphIndex: 141 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 204 + m_GlyphIndex: 142 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 205 + m_GlyphIndex: 143 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 206 + m_GlyphIndex: 144 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 207 + m_GlyphIndex: 145 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 208 + m_GlyphIndex: 146 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 209 + m_GlyphIndex: 147 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 210 + m_GlyphIndex: 148 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 211 + m_GlyphIndex: 149 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 212 + m_GlyphIndex: 150 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 213 + m_GlyphIndex: 151 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 214 + m_GlyphIndex: 152 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 215 + m_GlyphIndex: 153 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 216 + m_GlyphIndex: 154 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 217 + m_GlyphIndex: 155 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 218 + m_GlyphIndex: 156 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 219 + m_GlyphIndex: 157 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 220 + m_GlyphIndex: 158 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 221 + m_GlyphIndex: 159 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 222 + m_GlyphIndex: 160 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 223 + m_GlyphIndex: 161 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 224 + m_GlyphIndex: 162 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 225 + m_GlyphIndex: 163 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 226 + m_GlyphIndex: 164 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 227 + m_GlyphIndex: 165 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 228 + m_GlyphIndex: 166 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 229 + m_GlyphIndex: 167 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 230 + m_GlyphIndex: 168 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 231 + m_GlyphIndex: 169 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 232 + m_GlyphIndex: 170 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 233 + m_GlyphIndex: 171 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 234 + m_GlyphIndex: 172 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 235 + m_GlyphIndex: 173 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 236 + m_GlyphIndex: 174 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 237 + m_GlyphIndex: 175 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 238 + m_GlyphIndex: 176 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 239 + m_GlyphIndex: 177 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 240 + m_GlyphIndex: 178 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 241 + m_GlyphIndex: 179 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 242 + m_GlyphIndex: 180 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 243 + m_GlyphIndex: 181 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 244 + m_GlyphIndex: 182 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 245 + m_GlyphIndex: 183 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 246 + m_GlyphIndex: 184 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 247 + m_GlyphIndex: 185 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 248 + m_GlyphIndex: 186 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 249 + m_GlyphIndex: 187 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 250 + m_GlyphIndex: 188 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 251 + m_GlyphIndex: 189 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 252 + m_GlyphIndex: 190 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 253 + m_GlyphIndex: 191 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 254 + m_GlyphIndex: 192 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 255 + m_GlyphIndex: 193 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8211 + m_GlyphIndex: 229 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8212 + m_GlyphIndex: 230 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8216 + m_GlyphIndex: 231 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8217 + m_GlyphIndex: 232 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8218 + m_GlyphIndex: 233 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8220 + m_GlyphIndex: 234 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8221 + m_GlyphIndex: 235 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8222 + m_GlyphIndex: 236 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8224 + m_GlyphIndex: 237 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8225 + m_GlyphIndex: 238 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8226 + m_GlyphIndex: 239 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 240 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8240 + m_GlyphIndex: 241 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8249 + m_GlyphIndex: 242 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8250 + m_GlyphIndex: 243 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8260 + m_GlyphIndex: 244 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8364 + m_GlyphIndex: 245 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8482 + m_GlyphIndex: 246 + m_Scale: 1 + m_AtlasTextures: + - {fileID: -2340667833886341526} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 63 + m_Height: 41 + - m_X: 63 + m_Y: 0 + m_Width: 58 + m_Height: 41 + - m_X: 121 + m_Y: 0 + m_Width: 52 + m_Height: 41 + - m_X: 173 + m_Y: 0 + m_Width: 44 + m_Height: 49 + - m_X: 0 + m_Y: 41 + m_Width: 44 + m_Height: 46 + - m_X: 44 + m_Y: 41 + m_Width: 44 + m_Height: 41 + - m_X: 88 + m_Y: 41 + m_Width: 44 + m_Height: 41 + - m_X: 132 + m_Y: 41 + m_Width: 40 + m_Height: 52 + - m_X: 44 + m_Y: 82 + m_Width: 44 + m_Height: 41 + - m_X: 0 + m_Y: 87 + m_Width: 44 + m_Height: 30 + - m_X: 0 + m_Y: 117 + m_Width: 43 + m_Height: 41 + - m_X: 88 + m_Y: 82 + m_Width: 43 + m_Height: 30 + - m_X: 217 + m_Y: 0 + m_Width: 42 + m_Height: 51 + - m_X: 172 + m_Y: 49 + m_Width: 42 + m_Height: 51 + - m_X: 131 + m_Y: 93 + m_Width: 40 + m_Height: 51 + - m_X: 88 + m_Y: 112 + m_Width: 42 + m_Height: 50 + - m_X: 43 + m_Y: 123 + m_Width: 42 + m_Height: 50 + - m_X: 0 + m_Y: 158 + m_Width: 42 + m_Height: 49 + - m_X: 259 + m_Y: 0 + m_Width: 42 + m_Height: 46 + - m_X: 301 + m_Y: 0 + m_Width: 42 + m_Height: 41 + - m_X: 343 + m_Y: 0 + m_Width: 42 + m_Height: 41 + - m_X: 385 + m_Y: 0 + m_Width: 40 + m_Height: 51 + - m_X: 301 + m_Y: 41 + m_Width: 40 + m_Height: 50 + - m_X: 259 + m_Y: 46 + m_Width: 40 + m_Height: 50 + - m_X: 341 + m_Y: 41 + m_Width: 40 + m_Height: 49 + - m_X: 214 + m_Y: 51 + m_Width: 40 + m_Height: 41 + - m_X: 214 + m_Y: 92 + m_Width: 40 + m_Height: 41 + - m_X: 171 + m_Y: 100 + m_Width: 40 + m_Height: 41 + - m_X: 425 + m_Y: 0 + m_Width: 40 + m_Height: 30 + - m_X: 465 + m_Y: 0 + m_Width: 39 + m_Height: 41 + - m_X: 425 + m_Y: 30 + m_Width: 39 + m_Height: 41 + - m_X: 381 + m_Y: 51 + m_Width: 39 + m_Height: 6 + - m_X: 381 + m_Y: 57 + m_Width: 38 + m_Height: 41 + - m_X: 341 + m_Y: 90 + m_Width: 38 + m_Height: 18 + - m_X: 299 + m_Y: 91 + m_Width: 38 + m_Height: 9 + - m_X: 254 + m_Y: 96 + m_Width: 37 + m_Height: 51 + - m_X: 291 + m_Y: 96 + m_Width: 8 + m_Height: 42 + - m_X: 299 + m_Y: 100 + m_Width: 37 + m_Height: 47 + - m_X: 291 + m_Y: 138 + m_Width: 7 + m_Height: 53 + - m_X: 211 + m_Y: 133 + m_Width: 37 + m_Height: 41 + - m_X: 171 + m_Y: 141 + m_Width: 37 + m_Height: 41 + - m_X: 130 + m_Y: 144 + m_Width: 37 + m_Height: 41 + - m_X: 248 + m_Y: 147 + m_Width: 37 + m_Height: 41 + - m_X: 208 + m_Y: 174 + m_Width: 36 + m_Height: 50 + - m_X: 167 + m_Y: 182 + m_Width: 36 + m_Height: 41 + - m_X: 85 + m_Y: 162 + m_Width: 35 + m_Height: 49 + - m_X: 120 + m_Y: 162 + m_Width: 10 + m_Height: 42 + - m_X: 130 + m_Y: 185 + m_Width: 35 + m_Height: 41 + - m_X: 120 + m_Y: 204 + m_Width: 10 + m_Height: 37 + - m_X: 165 + m_Y: 223 + m_Width: 35 + m_Height: 41 + - m_X: 130 + m_Y: 226 + m_Width: 34 + m_Height: 51 + - m_X: 200 + m_Y: 223 + m_Width: 7 + m_Height: 53 + - m_X: 164 + m_Y: 264 + m_Width: 34 + m_Height: 51 + - m_X: 42 + m_Y: 173 + m_Width: 34 + m_Height: 50 + - m_X: 76 + m_Y: 173 + m_Width: 9 + m_Height: 41 + - m_X: 85 + m_Y: 211 + m_Width: 34 + m_Height: 50 + - m_X: 76 + m_Y: 214 + m_Width: 9 + m_Height: 41 + - m_X: 119 + m_Y: 241 + m_Width: 11 + m_Height: 10 + - m_X: 119 + m_Y: 251 + m_Width: 10 + m_Height: 29 + - m_X: 129 + m_Y: 277 + m_Width: 34 + m_Height: 41 + - m_X: 0 + m_Y: 207 + m_Width: 34 + m_Height: 41 + - m_X: 34 + m_Y: 207 + m_Width: 7 + m_Height: 16 + - m_X: 34 + m_Y: 223 + m_Width: 34 + m_Height: 41 + - m_X: 68 + m_Y: 255 + m_Width: 17 + m_Height: 51 + - m_X: 85 + m_Y: 261 + m_Width: 34 + m_Height: 41 + - m_X: 119 + m_Y: 280 + m_Width: 10 + m_Height: 17 + - m_X: 119 + m_Y: 297 + m_Width: 10 + m_Height: 16 + - m_X: 85 + m_Y: 302 + m_Width: 33 + m_Height: 41 + - m_X: 118 + m_Y: 313 + m_Width: 10 + m_Height: 9 + - m_X: 0 + m_Y: 248 + m_Width: 32 + m_Height: 41 + - m_X: 32 + m_Y: 264 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 289 + m_Width: 32 + m_Height: 41 + - m_X: 32 + m_Y: 305 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 330 + m_Width: 32 + m_Height: 41 + - m_X: 64 + m_Y: 306 + m_Width: 21 + m_Height: 50 + - m_X: 32 + m_Y: 346 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 371 + m_Width: 31 + m_Height: 41 + - m_X: 244 + m_Y: 188 + m_Width: 31 + m_Height: 41 + - m_X: 275 + m_Y: 188 + m_Width: 16 + m_Height: 52 + - m_X: 207 + m_Y: 224 + m_Width: 31 + m_Height: 35 + - m_X: 238 + m_Y: 229 + m_Width: 30 + m_Height: 54 + - m_X: 207 + m_Y: 259 + m_Width: 30 + m_Height: 50 + - m_X: 198 + m_Y: 276 + m_Width: 9 + m_Height: 39 + - m_X: 504 + m_Y: 0 + m_Width: 30 + m_Height: 49 + - m_X: 464 + m_Y: 41 + m_Width: 30 + m_Height: 41 + - m_X: 494 + m_Y: 41 + m_Width: 9 + m_Height: 18 + - m_X: 419 + m_Y: 71 + m_Width: 30 + m_Height: 41 + - m_X: 449 + m_Y: 71 + m_Width: 15 + m_Height: 52 + - m_X: 379 + m_Y: 98 + m_Width: 30 + m_Height: 41 + - m_X: 409 + m_Y: 98 + m_Width: 9 + m_Height: 17 + - m_X: 418 + m_Y: 112 + m_Width: 30 + m_Height: 41 + - m_X: 336 + m_Y: 108 + m_Width: 30 + m_Height: 41 + - m_X: 366 + m_Y: 108 + m_Width: 13 + m_Height: 53 + - m_X: 298 + m_Y: 147 + m_Width: 30 + m_Height: 41 + - m_X: 328 + m_Y: 149 + m_Width: 30 + m_Height: 41 + - m_X: 298 + m_Y: 188 + m_Width: 30 + m_Height: 41 + - m_X: 379 + m_Y: 139 + m_Width: 30 + m_Height: 40 + - m_X: 358 + m_Y: 161 + m_Width: 21 + m_Height: 50 + - m_X: 328 + m_Y: 190 + m_Width: 30 + m_Height: 39 + - m_X: 534 + m_Y: 0 + m_Width: 30 + m_Height: 33 + - m_X: 564 + m_Y: 0 + m_Width: 30 + m_Height: 30 + - m_X: 594 + m_Y: 0 + m_Width: 30 + m_Height: 30 + - m_X: 624 + m_Y: 0 + m_Width: 30 + m_Height: 29 + - m_X: 654 + m_Y: 0 + m_Width: 30 + m_Height: 28 + - m_X: 684 + m_Y: 0 + m_Width: 29 + m_Height: 42 + - m_X: 654 + m_Y: 28 + m_Width: 29 + m_Height: 41 + - m_X: 624 + m_Y: 29 + m_Width: 29 + m_Height: 41 + - m_X: 564 + m_Y: 30 + m_Width: 29 + m_Height: 41 + - m_X: 534 + m_Y: 33 + m_Width: 29 + m_Height: 41 + - m_X: 503 + m_Y: 49 + m_Width: 29 + m_Height: 41 + - m_X: 593 + m_Y: 30 + m_Width: 29 + m_Height: 41 + - m_X: 464 + m_Y: 82 + m_Width: 29 + m_Height: 40 + - m_X: 713 + m_Y: 0 + m_Width: 29 + m_Height: 30 + - m_X: 742 + m_Y: 0 + m_Width: 28 + m_Height: 52 + - m_X: 713 + m_Y: 30 + m_Width: 28 + m_Height: 52 + - m_X: 683 + m_Y: 42 + m_Width: 28 + m_Height: 51 + - m_X: 653 + m_Y: 69 + m_Width: 28 + m_Height: 51 + - m_X: 622 + m_Y: 70 + m_Width: 28 + m_Height: 50 + - m_X: 563 + m_Y: 71 + m_Width: 28 + m_Height: 50 + - m_X: 532 + m_Y: 74 + m_Width: 28 + m_Height: 43 + - m_X: 591 + m_Y: 71 + m_Width: 28 + m_Height: 42 + - m_X: 591 + m_Y: 113 + m_Width: 28 + m_Height: 41 + - m_X: 493 + m_Y: 90 + m_Width: 28 + m_Height: 41 + - m_X: 464 + m_Y: 122 + m_Width: 28 + m_Height: 41 + - m_X: 448 + m_Y: 123 + m_Width: 16 + m_Height: 52 + - m_X: 409 + m_Y: 153 + m_Width: 28 + m_Height: 39 + - m_X: 379 + m_Y: 179 + m_Width: 28 + m_Height: 28 + - m_X: 521 + m_Y: 117 + m_Width: 28 + m_Height: 28 + - m_X: 549 + m_Y: 117 + m_Width: 14 + m_Height: 53 + - m_X: 563 + m_Y: 121 + m_Width: 28 + m_Height: 13 + - m_X: 563 + m_Y: 134 + m_Width: 27 + m_Height: 51 + - m_X: 492 + m_Y: 131 + m_Width: 27 + m_Height: 42 + - m_X: 464 + m_Y: 163 + m_Width: 27 + m_Height: 41 + - m_X: 437 + m_Y: 175 + m_Width: 27 + m_Height: 41 + - m_X: 407 + m_Y: 192 + m_Width: 27 + m_Height: 41 + - m_X: 379 + m_Y: 207 + m_Width: 27 + m_Height: 41 + - m_X: 358 + m_Y: 211 + m_Width: 21 + m_Height: 41 + - m_X: 519 + m_Y: 145 + m_Width: 27 + m_Height: 40 + - m_X: 546 + m_Y: 170 + m_Width: 17 + m_Height: 51 + - m_X: 491 + m_Y: 173 + m_Width: 27 + m_Height: 39 + - m_X: 464 + m_Y: 204 + m_Width: 27 + m_Height: 30 + - m_X: 518 + m_Y: 185 + m_Width: 26 + m_Height: 42 + - m_X: 491 + m_Y: 212 + m_Width: 26 + m_Height: 42 + - m_X: 434 + m_Y: 216 + m_Width: 26 + m_Height: 41 + - m_X: 406 + m_Y: 233 + m_Width: 26 + m_Height: 41 + - m_X: 379 + m_Y: 248 + m_Width: 26 + m_Height: 41 + - m_X: 460 + m_Y: 234 + m_Width: 26 + m_Height: 41 + - m_X: 432 + m_Y: 257 + m_Width: 26 + m_Height: 41 + - m_X: 405 + m_Y: 274 + m_Width: 26 + m_Height: 40 + - m_X: 291 + m_Y: 229 + m_Width: 26 + m_Height: 39 + - m_X: 268 + m_Y: 240 + m_Width: 23 + m_Height: 41 + - m_X: 317 + m_Y: 229 + m_Width: 26 + m_Height: 30 + - m_X: 343 + m_Y: 229 + m_Width: 15 + m_Height: 22 + - m_X: 343 + m_Y: 251 + m_Width: 14 + m_Height: 52 + - m_X: 317 + m_Y: 259 + m_Width: 26 + m_Height: 30 + - m_X: 291 + m_Y: 268 + m_Width: 26 + m_Height: 20 + - m_X: 268 + m_Y: 281 + m_Width: 23 + m_Height: 40 + - m_X: 291 + m_Y: 288 + m_Width: 26 + m_Height: 15 + - m_X: 317 + m_Y: 289 + m_Width: 26 + m_Height: 14 + - m_X: 357 + m_Y: 252 + m_Width: 21 + m_Height: 41 + - m_X: 378 + m_Y: 289 + m_Width: 25 + m_Height: 43 + - m_X: 357 + m_Y: 293 + m_Width: 21 + m_Height: 39 + - m_X: 237 + m_Y: 283 + m_Width: 25 + m_Height: 41 + - m_X: 207 + m_Y: 309 + m_Width: 25 + m_Height: 41 + - m_X: 163 + m_Y: 315 + m_Width: 25 + m_Height: 41 + - m_X: 188 + m_Y: 315 + m_Width: 19 + m_Height: 41 + - m_X: 128 + m_Y: 318 + m_Width: 25 + m_Height: 41 + - m_X: 85 + m_Y: 343 + m_Width: 25 + m_Height: 40 + - m_X: 64 + m_Y: 356 + m_Width: 21 + m_Height: 25 + - m_X: 64 + m_Y: 381 + m_Width: 21 + m_Height: 20 + - m_X: 110 + m_Y: 343 + m_Width: 18 + m_Height: 18 + - m_X: 31 + m_Y: 387 + m_Width: 25 + m_Height: 39 + - m_X: 0 + m_Y: 412 + m_Width: 25 + m_Height: 30 + - m_X: 291 + m_Y: 303 + m_Width: 25 + m_Height: 30 + - m_X: 262 + m_Y: 321 + m_Width: 25 + m_Height: 30 + - m_X: 232 + m_Y: 324 + m_Width: 25 + m_Height: 6 + - m_X: 232 + m_Y: 330 + m_Width: 24 + m_Height: 45 + - m_X: 207 + m_Y: 350 + m_Width: 24 + m_Height: 45 + - m_X: 316 + m_Y: 303 + m_Width: 24 + m_Height: 45 + - m_X: 340 + m_Y: 303 + m_Width: 17 + m_Height: 22 + - m_X: 340 + m_Y: 325 + m_Width: 17 + m_Height: 22 + - m_X: 287 + m_Y: 333 + m_Width: 24 + m_Height: 27 + - m_X: 256 + m_Y: 351 + m_Width: 24 + m_Height: 27 + - m_X: 231 + m_Y: 375 + m_Width: 24 + m_Height: 22 + - m_X: 153 + m_Y: 356 + m_Width: 24 + m_Height: 6 + - m_X: 128 + m_Y: 359 + m_Width: 23 + m_Height: 30 + - m_X: 110 + m_Y: 361 + m_Width: 18 + m_Height: 17 + - m_X: 110 + m_Y: 378 + m_Width: 18 + m_Height: 17 + - m_X: 85 + m_Y: 383 + m_Width: 20 + m_Height: 25 + - m_X: 56 + m_Y: 401 + m_Width: 20 + m_Height: 20 + - m_X: 177 + m_Y: 356 + m_Width: 20 + m_Height: 19 + - m_X: 151 + m_Y: 362 + m_Width: 19 + m_Height: 40 + - m_X: 128 + m_Y: 389 + m_Width: 19 + m_Height: 30 + - m_X: 105 + m_Y: 395 + m_Width: 19 + m_Height: 8 + - m_X: 105 + m_Y: 403 + m_Width: 19 + m_Height: 5 + - m_X: 170 + m_Y: 375 + m_Width: 17 + m_Height: 19 + - m_X: 187 + m_Y: 375 + m_Width: 17 + m_Height: 6 + - m_X: 187 + m_Y: 381 + m_Width: 17 + m_Height: 6 + - m_X: 187 + m_Y: 387 + m_Width: 16 + m_Height: 16 + - m_X: 170 + m_Y: 394 + m_Width: 14 + m_Height: 41 + - m_X: 147 + m_Y: 402 + m_Width: 14 + m_Height: 10 + - m_X: 147 + m_Y: 412 + m_Width: 13 + m_Height: 52 + - m_X: 203 + m_Y: 395 + m_Width: 13 + m_Height: 41 + - m_X: 216 + m_Y: 395 + m_Width: 13 + m_Height: 12 + - m_X: 184 + m_Y: 403 + m_Width: 13 + m_Height: 10 + - m_X: 184 + m_Y: 413 + m_Width: 12 + m_Height: 25 + - m_X: 160 + m_Y: 435 + m_Width: 12 + m_Height: 25 + m_FreeGlyphRects: + - m_X: 172 + m_Y: 41 + m_Width: 1 + m_Height: 8 + - m_X: 131 + m_Y: 82 + m_Width: 1 + m_Height: 11 + - m_X: 43 + m_Y: 117 + m_Width: 1 + m_Height: 6 + - m_X: 214 + m_Y: 49 + m_Width: 3 + m_Height: 2 + - m_X: 171 + m_Y: 93 + m_Width: 1 + m_Height: 7 + - m_X: 381 + m_Y: 41 + m_Width: 4 + m_Height: 10 + - m_X: 299 + m_Y: 46 + m_Width: 2 + m_Height: 45 + - m_X: 254 + m_Y: 51 + m_Width: 5 + m_Height: 45 + - m_X: 211 + m_Y: 100 + m_Width: 3 + m_Height: 33 + - m_X: 130 + m_Y: 112 + m_Width: 1 + m_Height: 32 + - m_X: 248 + m_Y: 133 + m_Width: 6 + m_Height: 14 + - m_X: 208 + m_Y: 141 + m_Width: 3 + m_Height: 33 + - m_X: 167 + m_Y: 144 + m_Width: 4 + m_Height: 38 + - m_X: 85 + m_Y: 123 + m_Width: 3 + m_Height: 39 + - m_X: 165 + m_Y: 185 + m_Width: 2 + m_Height: 38 + - m_X: 203 + m_Y: 182 + m_Width: 5 + m_Height: 41 + - m_X: 164 + m_Y: 226 + m_Width: 1 + m_Height: 38 + - m_X: 42 + m_Y: 158 + m_Width: 1 + m_Height: 15 + - m_X: 119 + m_Y: 211 + m_Width: 1 + m_Height: 30 + - m_X: 129 + m_Y: 251 + m_Width: 1 + m_Height: 26 + - m_X: 41 + m_Y: 207 + m_Width: 1 + m_Height: 16 + - m_X: 68 + m_Y: 223 + m_Width: 8 + m_Height: 32 + - m_X: 118 + m_Y: 302 + m_Width: 1 + m_Height: 11 + - m_X: 32 + m_Y: 248 + m_Width: 2 + m_Height: 16 + - m_X: 64 + m_Y: 264 + m_Width: 4 + m_Height: 42 + - m_X: 244 + m_Y: 174 + m_Width: 4 + m_Height: 14 + - m_X: 285 + m_Y: 147 + m_Width: 6 + m_Height: 41 + - m_X: 207 + m_Y: 182 + m_Width: 1 + m_Height: 42 + - m_X: 238 + m_Y: 224 + m_Width: 6 + m_Height: 5 + - m_X: 198 + m_Y: 264 + m_Width: 2 + m_Height: 12 + - m_X: 464 + m_Y: 30 + m_Width: 1 + m_Height: 11 + - m_X: 420 + m_Y: 51 + m_Width: 5 + m_Height: 20 + - m_X: 419 + m_Y: 57 + m_Width: 6 + m_Height: 14 + - m_X: 379 + m_Y: 90 + m_Width: 2 + m_Height: 8 + - m_X: 418 + m_Y: 98 + m_Width: 1 + m_Height: 14 + - m_X: 337 + m_Y: 91 + m_Width: 4 + m_Height: 17 + - m_X: 336 + m_Y: 100 + m_Width: 5 + m_Height: 8 + - m_X: 298 + m_Y: 138 + m_Width: 1 + m_Height: 9 + - m_X: 328 + m_Y: 147 + m_Width: 8 + m_Height: 2 + - m_X: 358 + m_Y: 149 + m_Width: 8 + m_Height: 12 + - m_X: 503 + m_Y: 41 + m_Width: 1 + m_Height: 8 + - m_X: 770 + m_Y: 0 + m_Width: 254 + m_Height: 1024 + - m_X: 741 + m_Y: 52 + m_Width: 283 + m_Height: 972 + - m_X: 741 + m_Y: 30 + m_Width: 1 + m_Height: 994 + - m_X: 683 + m_Y: 28 + m_Width: 1 + m_Height: 14 + - m_X: 711 + m_Y: 82 + m_Width: 313 + m_Height: 942 + - m_X: 711 + m_Y: 42 + m_Width: 2 + m_Height: 982 + - m_X: 653 + m_Y: 29 + m_Width: 1 + m_Height: 40 + - m_X: 681 + m_Y: 93 + m_Width: 343 + m_Height: 931 + - m_X: 681 + m_Y: 69 + m_Width: 2 + m_Height: 955 + - m_X: 622 + m_Y: 30 + m_Width: 2 + m_Height: 40 + - m_X: 650 + m_Y: 70 + m_Width: 3 + m_Height: 954 + - m_X: 563 + m_Y: 33 + m_Width: 1 + m_Height: 38 + - m_X: 532 + m_Y: 49 + m_Width: 2 + m_Height: 25 + - m_X: 619 + m_Y: 71 + m_Width: 3 + m_Height: 953 + - m_X: 619 + m_Y: 120 + m_Width: 405 + m_Height: 904 + - m_X: 494 + m_Y: 59 + m_Width: 9 + m_Height: 31 + - m_X: 493 + m_Y: 82 + m_Width: 10 + m_Height: 8 + - m_X: 448 + m_Y: 112 + m_Width: 1 + m_Height: 11 + - m_X: 409 + m_Y: 115 + m_Width: 9 + m_Height: 38 + - m_X: 521 + m_Y: 90 + m_Width: 11 + m_Height: 27 + - m_X: 560 + m_Y: 74 + m_Width: 3 + m_Height: 43 + - m_X: 590 + m_Y: 154 + m_Width: 434 + m_Height: 870 + - m_X: 590 + m_Y: 134 + m_Width: 1 + m_Height: 890 + - m_X: 492 + m_Y: 122 + m_Width: 1 + m_Height: 9 + - m_X: 437 + m_Y: 153 + m_Width: 11 + m_Height: 22 + - m_X: 407 + m_Y: 179 + m_Width: 2 + m_Height: 13 + - m_X: 519 + m_Y: 131 + m_Width: 2 + m_Height: 14 + - m_X: 563 + m_Y: 185 + m_Width: 461 + m_Height: 839 + - m_X: 546 + m_Y: 145 + m_Width: 3 + m_Height: 25 + - m_X: 491 + m_Y: 163 + m_Width: 1 + m_Height: 10 + - m_X: 518 + m_Y: 173 + m_Width: 1 + m_Height: 12 + - m_X: 544 + m_Y: 185 + m_Width: 2 + m_Height: 839 + - m_X: 544 + m_Y: 221 + m_Width: 480 + m_Height: 803 + - m_X: 517 + m_Y: 227 + m_Width: 507 + m_Height: 797 + - m_X: 517 + m_Y: 212 + m_Width: 1 + m_Height: 812 + - m_X: 434 + m_Y: 192 + m_Width: 3 + m_Height: 24 + - m_X: 406 + m_Y: 207 + m_Width: 1 + m_Height: 26 + - m_X: 460 + m_Y: 216 + m_Width: 4 + m_Height: 18 + - m_X: 486 + m_Y: 254 + m_Width: 538 + m_Height: 770 + - m_X: 486 + m_Y: 234 + m_Width: 5 + m_Height: 790 + - m_X: 432 + m_Y: 233 + m_Width: 2 + m_Height: 24 + - m_X: 458 + m_Y: 257 + m_Width: 2 + m_Height: 767 + - m_X: 458 + m_Y: 275 + m_Width: 566 + m_Height: 749 + - m_X: 405 + m_Y: 248 + m_Width: 1 + m_Height: 26 + - m_X: 431 + m_Y: 298 + m_Width: 593 + m_Height: 726 + - m_X: 431 + m_Y: 274 + m_Width: 1 + m_Height: 750 + - m_X: 291 + m_Y: 191 + m_Width: 7 + m_Height: 38 + - m_X: 268 + m_Y: 229 + m_Width: 7 + m_Height: 11 + - m_X: 357 + m_Y: 251 + m_Width: 1 + m_Height: 1 + - m_X: 403 + m_Y: 314 + m_Width: 621 + m_Height: 710 + - m_X: 403 + m_Y: 289 + m_Width: 2 + m_Height: 735 + - m_X: 378 + m_Y: 252 + m_Width: 1 + m_Height: 37 + - m_X: 237 + m_Y: 259 + m_Width: 1 + m_Height: 24 + - m_X: 163 + m_Y: 277 + m_Width: 1 + m_Height: 38 + - m_X: 128 + m_Y: 313 + m_Width: 1 + m_Height: 5 + - m_X: 118 + m_Y: 322 + m_Width: 10 + m_Height: 21 + - m_X: 31 + m_Y: 371 + m_Width: 1 + m_Height: 16 + - m_X: 25 + m_Y: 412 + m_Width: 6 + m_Height: 612 + - m_X: 262 + m_Y: 283 + m_Width: 6 + m_Height: 38 + - m_X: 232 + m_Y: 309 + m_Width: 5 + m_Height: 15 + - m_X: 340 + m_Y: 347 + m_Width: 684 + m_Height: 677 + - m_X: 357 + m_Y: 332 + m_Width: 667 + m_Height: 692 + - m_X: 287 + m_Y: 321 + m_Width: 4 + m_Height: 12 + - m_X: 311 + m_Y: 348 + m_Width: 713 + m_Height: 676 + - m_X: 311 + m_Y: 333 + m_Width: 5 + m_Height: 691 + - m_X: 257 + m_Y: 324 + m_Width: 5 + m_Height: 27 + - m_X: 256 + m_Y: 330 + m_Width: 6 + m_Height: 21 + - m_X: 280 + m_Y: 360 + m_Width: 744 + m_Height: 664 + - m_X: 280 + m_Y: 351 + m_Width: 7 + m_Height: 673 + - m_X: 231 + m_Y: 350 + m_Width: 1 + m_Height: 25 + - m_X: 255 + m_Y: 378 + m_Width: 769 + m_Height: 646 + - m_X: 255 + m_Y: 375 + m_Width: 1 + m_Height: 649 + - m_X: 153 + m_Y: 318 + m_Width: 10 + m_Height: 38 + - m_X: 56 + m_Y: 387 + m_Width: 8 + m_Height: 14 + - m_X: 76 + m_Y: 401 + m_Width: 9 + m_Height: 623 + - m_X: 151 + m_Y: 359 + m_Width: 2 + m_Height: 3 + - m_X: 76 + m_Y: 408 + m_Width: 52 + m_Height: 616 + - m_X: 105 + m_Y: 383 + m_Width: 5 + m_Height: 12 + - m_X: 124 + m_Y: 395 + m_Width: 4 + m_Height: 629 + - m_X: 170 + m_Y: 362 + m_Width: 7 + m_Height: 13 + - m_X: 197 + m_Y: 356 + m_Width: 10 + m_Height: 19 + - m_X: 147 + m_Y: 389 + m_Width: 4 + m_Height: 13 + - m_X: 0 + m_Y: 464 + m_Width: 1024 + m_Height: 560 + - m_X: 0 + m_Y: 442 + m_Width: 147 + m_Height: 582 + - m_X: 25 + m_Y: 426 + m_Width: 122 + m_Height: 598 + - m_X: 56 + m_Y: 421 + m_Width: 91 + m_Height: 603 + - m_X: 76 + m_Y: 419 + m_Width: 71 + m_Height: 605 + - m_X: 204 + m_Y: 356 + m_Width: 3 + m_Height: 39 + - m_X: 203 + m_Y: 387 + m_Width: 4 + m_Height: 8 + - m_X: 216 + m_Y: 407 + m_Width: 808 + m_Height: 617 + - m_X: 229 + m_Y: 397 + m_Width: 795 + m_Height: 627 + - m_X: 229 + m_Y: 395 + m_Width: 2 + m_Height: 629 + - m_X: 184 + m_Y: 394 + m_Width: 3 + m_Height: 9 + - m_X: 197 + m_Y: 403 + m_Width: 6 + m_Height: 621 + - m_X: 196 + m_Y: 436 + m_Width: 828 + m_Height: 588 + - m_X: 196 + m_Y: 413 + m_Width: 7 + m_Height: 611 + - m_X: 161 + m_Y: 402 + m_Width: 9 + m_Height: 33 + - m_X: 160 + m_Y: 412 + m_Width: 10 + m_Height: 23 + - m_X: 160 + m_Y: 460 + m_Width: 864 + m_Height: 564 + - m_X: 172 + m_Y: 438 + m_Width: 852 + m_Height: 586 + - m_X: 172 + m_Y: 435 + m_Width: 12 + m_Height: 589 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 1 + m_AtlasRenderMode: 4121 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 49342641ea2b7e6429da3245744bb92b + pointSizeSamplingMode: 1 + pointSize: 55 + padding: 1 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 6 + characterSequence: 20-7E,A0-FF,2013-2015,2018-201A,201C-201E,2020-2022,2026,2030,2039-203A,2044,20AC,2122 + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4121 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &7453642021753212536 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lato-Regular Material + m_Shader: {fileID: 4800000, guid: 128e987d567d4e2c824d754223b3f3b0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: -2340667833886341526} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _ColorMask: 15 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta new file mode 100644 index 0000000..4612655 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ffb8c3515fb6dc4688eff5a7e48200f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf new file mode 100644 index 0000000..33eba8b Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf differ diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf.meta new file mode 100644 index 0000000..d27c6d5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 49342641ea2b7e6429da3245744bb92b +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Lato + fontNames: + - Lato + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt b/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt.meta new file mode 100644 index 0000000..0ec333e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00c3ff69a8133b34c9df87ba6dd26bf2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts.meta b/Assets/Plugins/Febucci/Text Animator/Example/Scripts.meta new file mode 100644 index 0000000..e438911 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3319478745348604ea0630be39d375db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime.meta b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime.meta new file mode 100644 index 0000000..373a7fc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dba2e994350d1f14cb2e667e48dee952 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs new file mode 100644 index 0000000..644b601 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs @@ -0,0 +1,53 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Examples +{ + [AddComponentMenu("")] + public class DefaultEffectsExample : MonoBehaviour + { + public TypewriterCore typewriter; + TextAnimatorSettings settings; + + private void Awake() + { + UnityEngine.Assertions.Assert.IsNotNull(typewriter, $"Text Animator Player component is null in {gameObject.name}"); + settings = TextAnimatorSettings.Instance; + UnityEngine.Assertions.Assert.IsNotNull(settings, $"Text Animator Settings is null."); + } + + string AddEffect(TextAnimatorSettings.Category category, string tag) where T: ScriptableObject + { + return $"{category.openingSymbol}{tag}{category.closingSymbol}{tag}{category.openingSymbol}/{category.closingSymbol}, "; + } + + private void Start() + { + const char quote = '"'; + //builds the text with all the default tags + string builtText = "You can add effects by using rich text tags." + + $"\nExample: writing {quote}I'm cold{quote} will result in {quote}I'm cold{quote}." + + $"\n\n Effects that animate through time are called {quote}Behaviors{quote}, and the default tags are: "; + + foreach (var effect in typewriter.TextAnimator.DatabaseBehaviors.Data) + { + if(!effect) continue; + builtText += AddEffect(settings.behaviors, effect.TagID); + } + + builtText += $"\n\nEffects that animate letters while they appear on screen are called {quote}Appearances{quote} and the default tags are: "; + + foreach (var effect in typewriter.TextAnimator.DatabaseAppearances.Data) + { + if(!effect) continue; + builtText += AddEffect(settings.appearances, effect.TagID); + } + + //shows the text dynamically (typewriter like) + typewriter.ShowText(builtText); + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta new file mode 100644 index 0000000..9df1e3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b97a825c489d94194a088dd18fedd2f0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs new file mode 100644 index 0000000..4c421ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs @@ -0,0 +1,168 @@ +using System.Collections; +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using UnityEngine; + +namespace Febucci.UI.Examples +{ + [AddComponentMenu(""), DisallowMultipleComponent] + class ExampleEvents : MonoBehaviour + { + // ---- PART OF THE SCRIPT THAT YOU'RE PROBABLY INTERESTED IT ---- + + void Start() + { + //Subscribe to the event + typewriter.onMessage.AddListener(OnMessage); + + + dialogueIndex = 0; + CurrentLineShown = false; + typewriter.ShowText(dialoguesLines[dialogueIndex]); + } + + void OnDestroy() + { + if(typewriter) typewriter.onMessage.RemoveListener(OnMessage); + } + + bool TryGetInt(string parameter, out int result) + { + + if (FormatUtils.TryGetFloat(parameter, 0, out float resultFloat)) + { + result = (int)resultFloat; + return true; + } + + result = -1; + return false; + } + void OnMessage(EventMarker eventData) + { + switch (eventData.name) + { + case "face": + if (eventData.parameters.Length <= 0) + { + Debug.LogWarning($"You need to specify a sprite index! Dialogue: {dialogueIndex}"); + return; + } + + if (TryGetInt(eventData.parameters[0], out int spriteIndex)) + { + if (spriteIndex >= 0 && spriteIndex < faces.Length) + { + faceRenderer.sprite = faces[spriteIndex]; + } + else + { + Debug.Log($"Sprite index was out of range. Dialogue: {dialogueIndex}"); + } + } + break; + + case "crate": + if (eventData.parameters.Length <= 0) + { + Debug.LogWarning($"You need to specify a crate index! Dialogue: {dialogueIndex}"); + return; + } + + if (TryGetInt(eventData.parameters[0], out int crateIndex)) + { + if (crateIndex >= 0 && crateIndex < crates.Length) + { + StartCoroutine(AnimateCrate(crateIndex)); + } + else + { + Debug.Log($"Sprite index was out of range. Dialogue: {dialogueIndex}"); + } + } + break; + } + } + + // ---- OTHER PART OF THE SCRIPT ---- + // This makes the script run faking a dialogue system + [SerializeField] TypewriterCore typewriter; + [SerializeField, TextArea(1, 5)] string[] dialoguesLines; + [SerializeField] Sprite[] faces; + [SerializeField] SpriteRenderer faceRenderer; + [SerializeField] GameObject continueText; + [SerializeField] Transform[] crates; + Vector3[] cratesInitialScale; + + int dialogueIndex = 0; + int dialogueLength; + bool currentLineShown; + + bool CurrentLineShown + { + get => currentLineShown; + set + { + currentLineShown = value; + continueText.SetActive(value); + } + } + + void Awake() + { + cratesInitialScale = new Vector3[crates.Length]; + for (int i = 0; i < crates.Length; i++) + { + cratesInitialScale[i] = crates[i].localScale; + } + + dialogueLength = dialoguesLines.Length; + typewriter.onTextShowed.AddListener(() => CurrentLineShown = true); + } + + void ContinueSequence() + { + CurrentLineShown = false; + dialogueIndex++; + if(dialogueIndexfreezing â€. + + Try writing a text by experimenting with the following + tags: , like “ I'm joking hehe now + I'm scared â€, then enter Unity’s Play mode. + +✅ Your text is animating letters based on the effects you’ve written. + +2. Showing letters dynamically + +To show letters dynamically (like a typewriter): + Add a TypewriterByCharacter component on the same GameObject. (In Unity’s Edit + Mode) + Tell TextAnimator that you want to use the typewriter. For now, let’s do it the super + simple way: On the TextAnimator_TMP component, set “Typewriter Starts + Automatically†value to true. Then enter Play mode. + +✅ Your text is now shown dynamically, like a typewriter. + +Example scenes + +In addition to the quick and simple Online documentation, Text Animator contains +multiple example scenes you can visit and learn from, each one showing specific +features. +[I suggest starting from the scene named “00-Welcomeâ€] +P.S. You can delete (or avoid importing) the Example Scenes folder if you don’t need +them in your project. + +Text Animator for Unity 2.X 2 + That’s it for the quick start! For every feature in detail, please visit the following: +https://www.febucci.com/text-animator-unity/docs/ + +In case you need any help, please do not hesitate to contact us through: +https://www.febucci.com/text-animator-unity/support/ + +⤠Thank you so much! Have fun bringing your texts to life! + +Text Animator for Unity 2.X 3 + \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta b/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta new file mode 100644 index 0000000..15f65ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2803ca31271d4631b7dcb81cccea0ee +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts.meta b/Assets/Plugins/Febucci/Text Animator/Scripts.meta new file mode 100644 index 0000000..93299ad --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a47363b2fbe9e2d45b00c72c79679fc3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta new file mode 100644 index 0000000..4c76f29 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 834807df07adbb843a9e2270df867e8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta new file mode 100644 index 0000000..3ffd24c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4092478b3f6ba408384c2224ec1edc58 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta new file mode 100644 index 0000000..2f651bf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 71fee1318e1eb47f7854704b0697d75d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs new file mode 100644 index 0000000..64be9e3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs @@ -0,0 +1,641 @@ +using System.Text; +using UnityEngine; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(Core.TAnimCore), true)] + class TAnimCoreDrawer : Editor + { + SerializedProperty m_Script; + + SerializedProperty typewriterStartsAutomatically; + + SerializedProperty referenceFontSize; + SerializedProperty useDynamicScaling; + + SerializedProperty timeScale; + SerializedProperty animationLoop; + SerializedProperty isResettingTimeOnNewText; + + + SerializedProperty defaultTagsMode; + SerializedProperty defaultAppearancesTags; + SerializedProperty defaultBehaviorsTags; + SerializedProperty defaultDisappearancesTags; + + SerializedProperty useDefaultDatabases; + + SerializedProperty databaseBehaviorsField; + DatabaseSharedDrawer databaseBehaviorsDrawer; + SerializedProperty databaseAppearancesField; + DatabaseSharedDrawer databaseAppearancesDrawer; + SerializedProperty databaseActionsField; + DatabaseSharedDrawer databaseActionsDrawer; + + Core.TAnimCore script; + static string[] excludedProperties = new string[] + { + "m_Script", + "_text", + "databaseBehaviors", + "databaseAppearances", + "defaultAppearancesTags", + "defaultBehaviorsTags", + "defaultDisappearancesTags", + "typewriterStartsAutomatically", + nameof(TAnimCore.referenceFontSize), + nameof(TAnimCore.useDynamicScaling), + nameof(TAnimCore.defaultTagsMode), + nameof(TAnimCore.timeScale), + nameof(TAnimCore.animationLoop), + nameof(TAnimCore.isResettingTimeOnNewText), + "databaseActions", + "useDefaultDatabases", + }; + + void OnEnable() + { + script = (Core.TAnimCore)target; + + m_Script = serializedObject.FindProperty("m_Script"); + + typewriterStartsAutomatically = serializedObject.FindProperty("typewriterStartsAutomatically"); + + useDefaultDatabases = serializedObject.FindProperty("useDefaultDatabases"); + databaseBehaviorsField = serializedObject.FindProperty("databaseBehaviors"); + databaseAppearancesField = serializedObject.FindProperty("databaseAppearances"); + databaseActionsField = serializedObject.FindProperty("databaseActions"); + + databaseBehaviorsDrawer = new DatabaseSharedDrawer(); + databaseAppearancesDrawer = new DatabaseSharedDrawer(); + databaseActionsDrawer = new DatabaseSharedDrawer(); + + defaultTagsMode = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.defaultTagsMode)); + defaultAppearancesTags = serializedObject.FindProperty("defaultAppearancesTags"); + defaultBehaviorsTags = serializedObject.FindProperty("defaultBehaviorsTags"); + defaultDisappearancesTags = serializedObject.FindProperty("defaultDisappearancesTags"); + + referenceFontSize = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.referenceFontSize)); + useDynamicScaling = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.useDynamicScaling)); + timeScale = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.timeScale)); + animationLoop = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.animationLoop)); + isResettingTimeOnNewText = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.isResettingTimeOnNewText)); + + gui_visibleCharacters = new GUIContent("Visible Characters", null, + $"Range of visible characters in the text.\nTo modify this via script, set \"{nameof(TAnimCore.firstVisibleCharacter)}\" and \"{nameof(TAnimCore.maxVisibleCharacters)}\""); + + EditorApplication.playModeStateChanged += OnPlayModeChanged; + RegisterUndoRedraw(); + UnregisterPlayback(); + } + + void OnPlayModeChanged(PlayModeStateChange stateChange) + { + if(stateChange == PlayModeStateChange.ExitingEditMode) + UnregisterPlayback(); + } + + private void OnDisable() + { + EditorApplication.playModeStateChanged -= OnPlayModeChanged; + UnregisterPlayback(); + UnregisterUndoRedraw(); + } + + private void OnDestroy() + { + UnregisterPlayback(); + UnregisterUndoRedraw(); + } + + #region Undo Redo + + private bool undoRedoRegistered; + + void RegisterUndoRedraw() + { + if (undoRedoRegistered) + return; + + undoRedoRegistered = true; + Undo.undoRedoPerformed += UndoRedraw; + } + + void UndoRedraw() + { + OnDisable(); + OnEnable(); + Repaint(); + runInEditMode = false; + } + + void UnregisterUndoRedraw() + { + if (!undoRedoRegistered) + return; + + undoRedoRegistered = false; + Undo.undoRedoPerformed -= UndoRedraw; + + } + + + #endregion + + #region Playback + + string textBeforePreview; + string textDuringPreview; + + private bool runInEditMode; + bool isPlaying => Application.isPlaying || runInEditMode; + + private GUIContent gui_visibleCharacters; + Vector2 playbackCharsScrollView; + bool extraPlaybackControls; + void DrawPlayback() + { + void HookPlaybackEvent() + { + script.time.RestartTime(); + + if (runInEditMode) RegisterPlayback(); + else UnregisterPlayback(); + } + + //--- Playback Toolbar --- + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(Application.isPlaying ? "Playback info" : "Preview in Edit Mode", GUILayout.Width(120)); + GUI.enabled = !Application.isPlaying; + if(GUILayout.Button(runInEditMode ? TexturesLoader.StopIcon : TexturesLoader.PlayIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + runInEditMode = !runInEditMode; + HookPlaybackEvent(); + } + + GUI.enabled = runInEditMode && !Application.isPlaying; + if(GUILayout.Button(TexturesLoader.SaveIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + textBeforePreview = textDuringPreview; + runInEditMode = false; + HookPlaybackEvent(); + } + GUI.enabled = true; + + EditorGUILayout.EndHorizontal(); + + //---Visible characters--- + if (isPlaying) + { + //---Text--- + if (!Application.isPlaying) + { + EditorGUI.BeginChangeCheck(); + + textDuringPreview = EditorGUILayout.TextArea(textDuringPreview, GUILayout.MinHeight(50)); + if (EditorGUI.EndChangeCheck()) + { + script.SetText(textDuringPreview); + EditorUtility.SetDirty(script); + } + } + + //---Visible characters--- + int charCount = script.CharactersCount; + + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + //First visible character + EditorGUI.BeginChangeCheck(); + float minValue = script.firstVisibleCharacter; + float maxValue = script.maxVisibleCharacters; + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.MinMaxSlider(gui_visibleCharacters, ref minValue, ref maxValue, 0, charCount); + if (EditorGUI.EndChangeCheck()) + { + script.firstVisibleCharacter = Mathf.RoundToInt(minValue); + script.maxVisibleCharacters = Mathf.RoundToInt(maxValue); + } + + EditorGUILayout.Space(); + int intMinValue = script.firstVisibleCharacter; + int intMaxValue = script.maxVisibleCharacters; + EditorGUI.BeginChangeCheck(); + intMinValue = EditorGUILayout.DelayedIntField(GUIContent.none, intMinValue, GUILayout.Width(30)); + EditorGUILayout.LabelField("/", GUILayout.Width(10)); + intMaxValue = EditorGUILayout.DelayedIntField(GUIContent.none, intMaxValue, GUILayout.Width(30)); + if(EditorGUI.EndChangeCheck()) + { + script.firstVisibleCharacter = Mathf.Clamp(intMinValue, 0, charCount); + script.maxVisibleCharacters = Mathf.Clamp(intMaxValue, 0, charCount); + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Time passed:"); + if(GUILayout.Button(TexturesLoader.RestartIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + script.time.RestartTime(); + } + EditorGUILayout.LabelField(script.time.timeSinceStart.ToString("F2"), EditorStyles.boldLabel); + + EditorGUILayout.EndHorizontal(); + + GUI.color = extraPlaybackControls ? Color.gray : Color.white; + if (GUILayout.Button("Extra Visibility Controls", EditorStyles.helpBox)) + { + extraPlaybackControls = !extraPlaybackControls; + } + GUI.color = Color.white; + + if (extraPlaybackControls) + { + const float boxSize = 12; + + if(script.WordsCount > 20) + EditorGUILayout.HelpBox("Displaying only the first 20 words to optimize performance", MessageType.None); + + playbackCharsScrollView = EditorGUILayout.BeginScrollView(playbackCharsScrollView); + + EditorGUILayout.BeginHorizontal(); + for (int w = 0; w < script.WordsCount && w < 20; w++) //max X words for performance + { + EditorGUILayout.BeginVertical(); + if (GUILayout.Button(script.Words[w].text, EditorStyles.miniButton)) + { + script.SetVisibilityWord(w, !script.Characters[script.Words[w].firstCharacterIndex].isVisible); + } + + EditorGUILayout.BeginHorizontal(); + for (int i = script.Words[w].firstCharacterIndex; i <= script.Words[w].lastCharacterIndex; i++) + { + script.Characters[i].isVisible = EditorGUILayout.Toggle(script.Characters[i].isVisible, + GUILayout.Width(boxSize)); + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.EndVertical(); + } + EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndScrollView(); + } + + EditorGUILayout.EndVertical(); + } + + EditorGUILayout.EndVertical(); + } + + bool registeredPlayback; + + void RegisterPlayback() + { + if (registeredPlayback) return; + registeredPlayback = true; + + if (script) + { + textBeforePreview = script.GetOriginalTextFromSource(); + textDuringPreview = textBeforePreview; + if (textDuringPreview.StartsWith("")) + textDuringPreview = textDuringPreview.Remove(0, 19); + + //resets text and databases regardless + script.ForceDatabaseRefresh(); + script.SetText(textDuringPreview); + } + + lastTime = EditorApplication.timeSinceStartup; + EditorApplication.update += UpdatePlayback; + } + + void UnregisterPlayback() + { + if (!registeredPlayback) return; + registeredPlayback = false; + + if (script) + { + // unfocus text area field to prevent having the same text when it appears again + if (textDuringPreview != string.Empty) + GUIUtility.keyboardControl = -1; + + script.SetTextToSource(textBeforePreview); + textBeforePreview = string.Empty; + textDuringPreview = string.Empty; + } + + EditorApplication.update -= UpdatePlayback; + } + + private double lastTime = 0; + void UpdatePlayback() + { + script.Animate((float)(EditorApplication.timeSinceStartup - lastTime)); + lastTime = EditorApplication.timeSinceStartup; + EditorApplication.QueuePlayerLoopUpdate(); + Repaint(); + } + + #endregion + + #region Default Tags + bool drawDefaultBehaviorTags = false; + bool drawDefaultAppearancesTags = false; + bool drawDefaultDisappearancesTags = false; + + void ForceDatabaseRefresh() + { + serializedObject.ApplyModifiedProperties(); + script.ForceDatabaseRefresh(); + } + + void DrawDefaultTags() + { + const string helpConstantTags = "How many of these effects will be applied to the entire text"; + const string helpFallbackTags = "How many of these effects will be applied to a letter, in case there aren't others of the same category."; + + void DrawDefaultArray(ref bool enabledOption, string name, SerializedProperty array, + Database database) where T : ScriptableObject, ITagProvider + { + int size = array.arraySize; + EditorGUILayout.BeginHorizontal(); + enabledOption = EditorGUILayout.Foldout(enabledOption, name + $" [{size} enabled]", true); + + bool areAllTagsValid = true; + + bool IsTagValid(string tag) + { + // hackyly returns valid on an empty tag, to allow user to add new tags without error + return string.IsNullOrEmpty(tag) || + database.ContainsKey(tag.Split(' ')[0]); //splits in case of attributes + } + + // Displays icon if any of the tags is not found in the database + if (database) + { + + for (int i = 0; i < array.arraySize && areAllTagsValid; i++) + { + if (!IsTagValid(array.GetArrayElementAtIndex(i).stringValue)) areAllTagsValid = false; + } + + if (!areAllTagsValid) + { + GUILayout.Box(TexturesLoader.WarningIcon, EditorStyles.label, GUILayout.Width(20), + GUILayout.Height(20)); + } + } + + EditorGUILayout.EndHorizontal(); + if (enabledOption) + { + EditorGUI.indentLevel++; //--begin of foldout + + if (!areAllTagsValid) + { + StringBuilder sb = new StringBuilder(); + foreach (var effect in database.Data) + { + if(!effect) continue; + if(string.IsNullOrEmpty(effect.TagID)) continue; + sb.Append(effect.TagID); + sb.Append(" "); + } + + EditorGUILayout.HelpBox( + $"The tags with the warning icons will not be recognized by Text Animator. Accepted tags: {sb}", + MessageType.Warning); + } + + GUI.enabled = false; + EditorGUILayout.LabelField( + (defaultTagsMode.intValue == (int)Core.TAnimCore.DefaultTagsMode.Fallback + ? helpFallbackTags + : helpConstantTags), EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + + //Edits array size + EditorGUI.BeginChangeCheck(); + size = EditorGUILayout.IntField("Effects Count", size); + if (EditorGUI.EndChangeCheck()) + { + bool increasing = size > array.arraySize; + size = Mathf.Clamp(size, 0, size + 1); + array.arraySize = size; + + if (increasing && size > 1) //new element is empty + { + array.GetArrayElementAtIndex(size - 1).stringValue = string.Empty; + } + + ForceDatabaseRefresh(); + } + + Vector2 scrollPos = Vector2.zero; + if (size > 0) + { + GUI.enabled = false; + EditorGUILayout.LabelField( + "Choose one effect per array element, e.g. 'wave'.\nModifiers are also accepted, e.g. 'wave a=2'", + EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + EditorGUI.indentLevel++; //--begin of array + + GUIContent temp = new GUIContent(); + string tempString; + for (int i = 0; i < array.arraySize; i++) + { + var element = array.GetArrayElementAtIndex(i); + temp.text = "Effect #" + (i + 1); + tempString = element.stringValue; + // Displays a nice set of button the user can choose recognized tags from + + EditorGUILayout.BeginHorizontal(); + EditorGUI.BeginChangeCheck(); + tempString = EditorGUILayout.DelayedTextField(temp, tempString); + if (EditorGUI.EndChangeCheck()) + { + element.stringValue = tempString; + ForceDatabaseRefresh(); + } + + if (database && !IsTagValid(tempString)) + { + GUILayout.Box(TexturesLoader.WarningIcon, EditorStyles.label, GUILayout.Width(20), + GUILayout.Height(20)); + } + + EditorGUILayout.EndHorizontal(); + } + + EditorGUI.indentLevel--; //--end of array + } + + EditorGUI.indentLevel--; //--end of foldout + } + } + + EditorGUILayout.LabelField("Default Tags", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(defaultTagsMode, true); + if(EditorGUI.EndChangeCheck()) + ForceDatabaseRefresh(); + + if (useDefaultDatabases.boolValue) + { + var settings = TextAnimatorSettings.Instance; + if (settings) + { + DrawDefaultArray(ref drawDefaultAppearancesTags, "Appearances", defaultAppearancesTags, settings.appearances.defaultDatabase); + DrawDefaultArray(ref drawDefaultBehaviorTags, "Behaviors", defaultBehaviorsTags, settings.behaviors.defaultDatabase); + DrawDefaultArray(ref drawDefaultDisappearancesTags, "Disappearances", defaultDisappearancesTags, settings.appearances.defaultDatabase); + } + } + else + { + DrawDefaultArray(ref drawDefaultAppearancesTags, "Appearances", defaultAppearancesTags, script.DatabaseAppearances); + DrawDefaultArray(ref drawDefaultBehaviorTags, "Behaviors", defaultBehaviorsTags, script.DatabaseBehaviors); + DrawDefaultArray(ref drawDefaultDisappearancesTags, "Disappearances", defaultDisappearancesTags, script.DatabaseAppearances); + } + + EditorGUI.indentLevel--; + } +#endregion + + #region Databases + bool editBehaviors = false; + bool editAppearances = false; + bool editActions = false; + SerializedObject settingsObject; + + void DrawDatabases() + { + EditorGUILayout.LabelField("Edit Effects & Actions", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PropertyField(useDefaultDatabases); + GUI.enabled = false; + EditorGUILayout.LabelField(useDefaultDatabases.boolValue ? "Editing databases for every component that uses default settings." : "Editing databases assigned only to this component.", EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + EditorGUILayout.EndHorizontal(); + + void DrawDatabaseField(ref bool foldoutToggle, string foldoutName, SerializedProperty field, DatabaseSharedDrawer drawer) + { + foldoutToggle = EditorGUILayout.Foldout(foldoutToggle, foldoutName, true); + + if (foldoutToggle) + { + EditorGUI.indentLevel++; + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(field); + if (EditorGUI.EndChangeCheck()) + ForceDatabaseRefresh(); + drawer.OnInspectorGUI(field); + EditorGUI.indentLevel--; + } + } + + if (useDefaultDatabases.boolValue) + { + var settings = TextAnimatorSettings.Instance; + if (!settings) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox("Text Animator Settings not found. Please re-run the setup wizard or click the following button.", MessageType.Error); + if (GUILayout.Button("Fix it for me", GUILayout.Width(80))) + { + TextAnimatorSetupWindow.FixSettingsFileNotFound(); + } + EditorGUILayout.EndHorizontal(); + } + else + { + if(settingsObject == null) settingsObject = new SerializedObject(settings); + + //Draws default settings instead + SerializedProperty databaseBehaviorsField = settingsObject.FindProperty(nameof(settings.behaviors)).FindPropertyRelative(nameof(settings.behaviors.defaultDatabase)); + SerializedProperty databaseAppearancesField = settingsObject.FindProperty(nameof(settings.appearances)).FindPropertyRelative(nameof(settings.appearances.defaultDatabase)); + SerializedProperty databaseActionsField = settingsObject.FindProperty(nameof(settings.actions)).FindPropertyRelative(nameof(settings.actions.defaultDatabase)); + DrawDatabaseField(ref editAppearances, "Appearances/Disappearances", databaseAppearancesField, databaseAppearancesDrawer); + DrawDatabaseField(ref editBehaviors, "Behaviors", databaseBehaviorsField, databaseBehaviorsDrawer); + DrawDatabaseField(ref editActions, "Actions", databaseActionsField, databaseActionsDrawer); + } + } + else + { + DrawDatabaseField(ref editAppearances, "Appearances/Disappearances", databaseAppearancesField, databaseAppearancesDrawer); + DrawDatabaseField(ref editBehaviors, "Behaviors", databaseBehaviorsField, databaseBehaviorsDrawer); + DrawDatabaseField(ref editActions, "Actions", databaseActionsField, databaseActionsDrawer); + } + + EditorGUI.indentLevel--; + } + + #endregion + + #region Main Settings + void DrawMainSettings() + { + EditorGUILayout.LabelField("Main Settings", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(typewriterStartsAutomatically); + if(typewriterStartsAutomatically.boolValue) + EditorGUILayout.LabelField("(Remember to add a Typewriter component!)", EditorStyles.wordWrappedMiniLabel); + + EditorGUILayout.PropertyField(useDynamicScaling); + if(useDynamicScaling.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(referenceFontSize); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(animationLoop); + if ((int)animationLoop.intValue != (int)AnimationLoop.Script) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(timeScale); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(isResettingTimeOnNewText); + + EditorGUI.indentLevel--; + } + #endregion + + public override void OnInspectorGUI() + { + GUI.enabled = false; + EditorGUILayout.PropertyField(m_Script); + GUI.enabled = true; + //--- Draws Text Animator --- + + DrawPlayback(); + EditorGUILayout.Space(); + + DrawMainSettings(); + EditorGUILayout.Space(); + + DrawDefaultTags(); + EditorGUILayout.Space(); + + DrawDatabases(); + EditorGUILayout.Space(); + + //--- Draws the rest --- + //(in case of custom inspector from child classes etc.) + DrawPropertiesExcluding(serializedObject, excludedProperties); + + if(serializedObject.hasModifiedProperties) + serializedObject.ApplyModifiedProperties(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta new file mode 100644 index 0000000..d7b2280 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcb43c683fc0e47569981a9ff0d346bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs new file mode 100644 index 0000000..54aacca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs @@ -0,0 +1,89 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterByCharacter), true)] + class TypewriterByCharacterDrawer : TypewriterCoreDrawer + { + SerializedProperty waitForNormalChars; + SerializedProperty waitLong; + SerializedProperty waitMiddle; + SerializedProperty avoidMultiplePunctuactionWait; + SerializedProperty waitForNewLines; + SerializedProperty waitForLastCharacter; + + PropertyWithDifferentLabel useTypewriterWaitForDisappearances; + PropertyWithDifferentLabel disappearanceWaitTime; + PropertyWithDifferentLabel disappearanceSpeedMultiplier; + + protected override void OnEnable() + { + base.OnEnable(); + + waitForNormalChars = serializedObject.FindProperty("waitForNormalChars"); + waitLong = serializedObject.FindProperty("waitLong"); + waitMiddle = serializedObject.FindProperty("waitMiddle"); + avoidMultiplePunctuactionWait = serializedObject.FindProperty("avoidMultiplePunctuactionWait"); + waitForNewLines = serializedObject.FindProperty("waitForNewLines"); + waitForLastCharacter = serializedObject.FindProperty("waitForLastCharacter"); + useTypewriterWaitForDisappearances = new PropertyWithDifferentLabel(serializedObject, "useTypewriterWaitForDisappearances", "Use Typewriter Wait Times"); + disappearanceSpeedMultiplier = new PropertyWithDifferentLabel(serializedObject, "disappearanceSpeedMultiplier", "Typewriter Speed Multiplier"); + disappearanceWaitTime = new PropertyWithDifferentLabel(serializedObject, "disappearanceWaitTime", "Disappearances Wait"); + } + + protected override string[] GetPropertiesToExclude() + { + string[] newProperties = new string[] { + "script", + "waitForNormalChars", + "waitLong", + "waitMiddle", + "avoidMultiplePunctuactionWait", + "waitForNewLines", + "waitForLastCharacter", + "useTypewriterWaitForDisappearances", + "disappearanceSpeedMultiplier", + "disappearanceWaitTime" + }; + + string[] baseProperties = base.GetPropertiesToExclude(); + + string[] mergedArray = new string[newProperties.Length + baseProperties.Length]; + + for (int i = 0; i < baseProperties.Length; i++) + { + mergedArray[i] = baseProperties[i]; + } + + for (int i = 0; i < newProperties.Length; i++) + { + mergedArray[i + baseProperties.Length] = newProperties[i]; + } + + return mergedArray; + } + + protected override void OnTypewriterSectionGUI() + { + EditorGUILayout.PropertyField(waitForNormalChars); + EditorGUILayout.PropertyField(waitLong); + EditorGUILayout.PropertyField(waitMiddle); + + EditorGUILayout.PropertyField(avoidMultiplePunctuactionWait); + EditorGUILayout.PropertyField(waitForNewLines); + EditorGUILayout.PropertyField(waitForLastCharacter); + } + + protected override void OnDisappearanceSectionGUI() + { + useTypewriterWaitForDisappearances.PropertyField(); + + if (useTypewriterWaitForDisappearances.property.boolValue) + disappearanceSpeedMultiplier.PropertyField(); + else + disappearanceWaitTime.PropertyField(); + + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta new file mode 100644 index 0000000..0049108 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 867d2cd807cf4028ad7222663d1d20dc +timeCreated: 1679750297 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs new file mode 100644 index 0000000..2ba50d6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs @@ -0,0 +1,59 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterByWord), true)] + class TypewriterByWordDrawer : TypewriterCoreDrawer + { + SerializedProperty waitForNormalWord; + SerializedProperty waitForWordWithPunctuation; + PropertyWithDifferentLabel disappearanceDelay; + + protected override void OnEnable() + { + base.OnEnable(); + + waitForNormalWord = serializedObject.FindProperty("waitForNormalWord"); + waitForWordWithPunctuation = serializedObject.FindProperty("waitForWordWithPunctuation"); + disappearanceDelay = new PropertyWithDifferentLabel(serializedObject, "disappearanceDelay", "Disappearances Wait"); + } + + protected override string[] GetPropertiesToExclude() + { + string[] newProperties = new string[] { + "script", + "waitForNormalWord", + "waitForWordWithPunctuation", + "disappearanceDelay", + }; + + string[] baseProperties = base.GetPropertiesToExclude(); + + string[] mergedArray = new string[newProperties.Length + baseProperties.Length]; + + for (int i = 0; i < baseProperties.Length; i++) + { + mergedArray[i] = baseProperties[i]; + } + + for (int i = 0; i < newProperties.Length; i++) + { + mergedArray[i + baseProperties.Length] = newProperties[i]; + } + + return mergedArray; + } + + protected override void OnTypewriterSectionGUI() + { + EditorGUILayout.PropertyField(waitForNormalWord); + EditorGUILayout.PropertyField(waitForWordWithPunctuation); + } + + protected override void OnDisappearanceSectionGUI() + { + disappearanceDelay.PropertyField(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta new file mode 100644 index 0000000..b5dd0d5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89bf62aedbe94754920fc2335a4fc7d0 +timeCreated: 1688982269 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs new file mode 100644 index 0000000..727afb5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs @@ -0,0 +1,253 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterCore), true)] + class TypewriterCoreDrawer : Editor + { + SerializedProperty showLettersDinamically; + SerializedProperty startTypewriterMode; + SerializedProperty hideAppearancesOnSkip; + SerializedProperty triggerEventsOnSkip; + SerializedProperty disappearanceOrientation; + + SerializedProperty onTextShowed; + SerializedProperty onTypewriterStart; + SerializedProperty onCharacterVisible; + SerializedProperty onTextDisappeared; + SerializedProperty onMessage; + + SerializedProperty resetTypingSpeedAtStartup; + + string[] propertiesToExclude = new string[0]; + + + protected struct PropertyWithDifferentLabel + { + public SerializedProperty property; + public GUIContent label; + + public PropertyWithDifferentLabel(SerializedObject obj, string property, string label) + { + this.property = obj.FindProperty(property); + this.label = new GUIContent(label); + } + + public void PropertyField() + { + EditorGUILayout.PropertyField(property, label); + } + } + + + protected virtual string[] GetPropertiesToExclude() + { + return new string[] { + "m_Script", + "useTypeWriter", + "startTypewriterMode", + "hideAppearancesOnSkip", + "triggerEventsOnSkip", + "onTextShowed", + "onTypewriterStart", + "onCharacterVisible", + "resetTypingSpeedAtStartup", + "onTextDisappeared", + "disappearanceOrientation", + "onMessage", + }; + } + + protected virtual void OnEnable() + { + showLettersDinamically = serializedObject.FindProperty("useTypeWriter"); + startTypewriterMode = serializedObject.FindProperty("startTypewriterMode"); + hideAppearancesOnSkip = serializedObject.FindProperty("hideAppearancesOnSkip"); + triggerEventsOnSkip = serializedObject.FindProperty("triggerEventsOnSkip"); + disappearanceOrientation = serializedObject.FindProperty("disappearanceOrientation"); + + + onTextShowed = serializedObject.FindProperty("onTextShowed"); + onTypewriterStart = serializedObject.FindProperty("onTypewriterStart"); + onCharacterVisible = serializedObject.FindProperty("onCharacterVisible"); + onTextDisappeared = serializedObject.FindProperty("onTextDisappeared"); + onMessage = serializedObject.FindProperty("onMessage"); + + resetTypingSpeedAtStartup = serializedObject.FindProperty("resetTypingSpeedAtStartup"); + + propertiesToExclude = GetPropertiesToExclude(); + } + + bool ButtonPlaymode(string label) + { + bool prevGUI = GUI.enabled; + GUI.enabled = Application.isPlaying; + + bool value = GUILayout.Button(label, EditorStyles.miniButton, GUILayout.MaxWidth(70)); + + GUI.enabled = prevGUI; + return value; + } + + public override void OnInspectorGUI() + { + + { + EditorGUILayout.LabelField("Main Settings", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(showLettersDinamically); + + EditorGUI.indentLevel--; + } + + EditorGUILayout.Space(); + + //Typewriter settings + + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Typewriter", EditorStyles.boldLabel); + + if (showLettersDinamically.boolValue) + { + if (ButtonPlaymode("Start")) + { + ((TypewriterCore)target).StartShowingText(true); + } + if (ButtonPlaymode("Stop")) + { + ((TypewriterCore)target).StopShowingText(); + } + } + + EditorGUILayout.EndHorizontal(); + } + + if (showLettersDinamically.boolValue) + { + EditorGUI.indentLevel++; + + EditorGUILayout.PropertyField(startTypewriterMode); + + EditorGUILayout.PropertyField(resetTypingSpeedAtStartup); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Typewriter Skip", EditorStyles.boldLabel); + + + if (ButtonPlaymode("Skip")) + { + ((TypewriterCore)target).SkipTypewriter(); + } + EditorGUILayout.EndHorizontal(); + + + EditorGUILayout.PropertyField(hideAppearancesOnSkip); + EditorGUILayout.PropertyField(triggerEventsOnSkip); + + EditorGUI.indentLevel--; + + } + else + { + GUI.enabled = false; + EditorGUILayout.LabelField("The typewriter is disabled"); + GUI.enabled = true; + } + + EditorGUILayout.Space(); + + //Events + { + EditorGUILayout.LabelField("Events", EditorStyles.boldLabel); + + // foldoutEvents = EditorGUILayout.Foldout(foldoutEvents, "Events"); + + //if (foldoutEvents) + { + EditorGUILayout.PropertyField(onTextShowed); + EditorGUILayout.PropertyField(onTextDisappeared); + + //GUI.enabled = showLettersDinamically.boolValue; + + if (showLettersDinamically.boolValue) + { + + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(onTypewriterStart); + EditorGUILayout.PropertyField(onCharacterVisible); + EditorGUILayout.PropertyField(onMessage); + + EditorGUI.indentLevel--; + } + + //GUI.enabled = true; + } + + } + + EditorGUILayout.Space(); + + //Typewriter + { + EditorGUILayout.LabelField("Typewriter Wait", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + OnTypewriterSectionGUI(); + EditorGUI.indentLevel--; + } + + EditorGUILayout.Space(); + + //Disappearance + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Disappearances", EditorStyles.boldLabel); + + if (ButtonPlaymode("Start")) + { + ((TypewriterCore)target).StartDisappearingText(); + } + if (ButtonPlaymode("Stop")) + { + ((TypewriterCore)target).StopDisappearingText(); + } + + EditorGUILayout.EndHorizontal(); + + EditorGUI.indentLevel++; + GUI.enabled = false; + EditorGUILayout.LabelField("To start disappearances, please call the 'StartDisappearingText()' method. See the docs for more.", EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + + EditorGUILayout.PropertyField(disappearanceOrientation); + + OnDisappearanceSectionGUI(); + + EditorGUI.indentLevel--; + } + + //Draws parent without the children (so, TanimPlayerBase can have a custom inspector) + DrawPropertiesExcluding(serializedObject, propertiesToExclude); + + + if (serializedObject.hasModifiedProperties) + { + serializedObject.ApplyModifiedProperties(); + } + + } + + protected virtual void OnTypewriterSectionGUI() + { + + } + + protected virtual void OnDisappearanceSectionGUI() + { + + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta new file mode 100644 index 0000000..259f154 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c505a7fbdbbf6604f9f76bf0afbec264 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta new file mode 100644 index 0000000..924f85d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2072e32578cb41c696fbc87874010a2b +timeCreated: 1680343888 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs new file mode 100644 index 0000000..9d72008 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs @@ -0,0 +1,51 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(ColorCurveProperty))] + public class ColorCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + SerializedProperty enabled = property.FindPropertyRelative(nameof(ColorCurve.enabled)); + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + + Rect enabledRect = new Rect(lineByLine.xMax-EditorGUIUtility.singleLineHeight, lineByLine.y, EditorGUIUtility.singleLineHeight, lineByLine.height); + Rect expandedRect = new Rect(lineByLine.x, lineByLine.y, position.width-EditorGUIUtility.singleLineHeight, lineByLine.height); + enabled.boolValue = GUI.Toggle(enabledRect, enabled.boolValue, GUIContent.none); + GUI.color = enabled.boolValue ? Color.white : Color.gray; + + property.isExpanded = EditorGUI.Foldout(expandedRect, property.isExpanded, label, true); + GUI.color = Color.white; + if(!property.isExpanded) return; + GUI.enabled = enabled.boolValue; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.colorOverTime))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.duration))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.waveSize))); + GUI.enabled = true; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return (property.isExpanded) + ? EditorGUIUtility.singleLineHeight * 4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..5c71ff3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 66208123db9e4e77b655117ebcc45e29 +timeCreated: 1680346774 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs new file mode 100644 index 0000000..7e32fb5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs @@ -0,0 +1,49 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(EmissionCurveProperty))] + public class EmissionCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + property.isExpanded = EditorGUI.Foldout(lineByLine, property.isExpanded, label, true); + if(!property.isExpanded) return; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + // -- cycles -- + SerializedProperty cycles = property.FindPropertyRelative(nameof(EmissionCurve.cycles)); + Rect half = lineByLine; + half.width /= 2f; + EditorGUI.PropertyField(half, cycles); + half.x += half.width + 5; + half.width -= 5; + EditorGUI.LabelField(half,cycles.intValue > 0 ? "cycles until end" : "effect is infinite"); + + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(EmissionCurve.duration))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(EmissionCurve.weightOverTime))); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return property.isExpanded + ? EditorGUIUtility.singleLineHeight*4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..6b2ec5c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4d090238fa054eed8276f4ad839ea8d0 +timeCreated: 1680343908 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs new file mode 100644 index 0000000..12fd08f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs @@ -0,0 +1,51 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(FloatCurveProperty))] + public class FloatCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + SerializedProperty enabled = property.FindPropertyRelative(nameof(FloatCurve.enabled)); + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + + Rect enabledRect = new Rect(lineByLine.xMax-EditorGUIUtility.singleLineHeight, lineByLine.y, EditorGUIUtility.singleLineHeight, lineByLine.height); + Rect expandedRect = new Rect(lineByLine.x, lineByLine.y, position.width-EditorGUIUtility.singleLineHeight, lineByLine.height); + enabled.boolValue = GUI.Toggle(enabledRect, enabled.boolValue, GUIContent.none); + GUI.color = enabled.boolValue ? Color.white : Color.gray; + + property.isExpanded = EditorGUI.Foldout(expandedRect, property.isExpanded, label, true); + GUI.color = Color.white; + if(!property.isExpanded) return; + GUI.enabled = enabled.boolValue; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.amplitude))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.waveSize))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.weightOverTime))); + GUI.enabled = true; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return (property.isExpanded) + ? EditorGUIUtility.singleLineHeight * 4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..537c83e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4894f9d8534334cd7a2f30c70b7bf59f +timeCreated: 1680343908 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta new file mode 100644 index 0000000..4f2fa4a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92e50da885b094e4fb85655841952277 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta new file mode 100644 index 0000000..47f126a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c2f725852edc492b8576fab496a36bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs new file mode 100644 index 0000000..46ce4fa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs @@ -0,0 +1,15 @@ +using Febucci.UI.Actions; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(ActionScriptableBase), true)] + class ActionScriptableDrawer : Editor + { + GenericSharedDrawer drawer = new GenericSharedDrawer(true); + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta new file mode 100644 index 0000000..1da562b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2200ec37f7bdf40a2aebe58049fd175f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta new file mode 100644 index 0000000..dd12f4b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b590f529b1e874522b94d7c65ad0dc13 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs new file mode 100644 index 0000000..153e6af --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs @@ -0,0 +1,15 @@ +using Febucci.UI.Effects; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(AnimationScriptableBase), true)] + class AnimScriptableDrawer : Editor + { + GenericSharedDrawer drawer = new GenericSharedDrawer(true); + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta new file mode 100644 index 0000000..452e793 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 475624099e3c24c10a455adc583e9044 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta new file mode 100644 index 0000000..42bc15b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 322f146cc940c4028b1d7a11a84d2e89 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs new file mode 100644 index 0000000..4892cf8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs @@ -0,0 +1,17 @@ +using Febucci.UI.Actions; +using Febucci.UI.Core.Parsing; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(ActionDatabase), true)] + class ActionDatabaseScriptableDrawer : Editor + { + DatabaseSharedDrawer drawer = new DatabaseSharedDrawer(); + + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta new file mode 100644 index 0000000..99b77bc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cef03566441d243eca1e263c1a8d95ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs new file mode 100644 index 0000000..880f8d9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs @@ -0,0 +1,16 @@ +using Febucci.UI.Effects; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(AnimationsDatabase), true)] + class AnimDatabaseScriptableDrawer : Editor + { + DatabaseSharedDrawer drawer = new DatabaseSharedDrawer(); + + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta new file mode 100644 index 0000000..6f43652 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d5e9601a30fe4cd8a211bde9711dd42 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs new file mode 100644 index 0000000..06e9c26 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs @@ -0,0 +1,104 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [System.Serializable] + class AnimationElementDrawer + { + public SerializedProperty propertyScriptable; + GenericSharedDrawer drawer; + private GUIContent scriptableNameContent; + public bool expanded; + public bool somethingChanged; + public int wantsToDelete; + + public AnimationElementDrawer(SerializedProperty propertyArrayElementPair) + { + propertyScriptable = propertyArrayElementPair; + drawer = new GenericSharedDrawer(false); + expanded = false; + wantsToDelete = 0; + scriptableNameContent = new GUIContent("Scriptable"); + } + + public bool hasScriptable => propertyScriptable.objectReferenceValue != null; + + public void Draw() + { + somethingChanged = false; + bool drawWarning = false; + string foldoutName; + if (propertyScriptable.objectReferenceValue is ITagProvider tag) + { + if (string.IsNullOrEmpty(tag.TagID)) + { + drawWarning = true; + foldoutName = "[!] Empty Tag"; + } + else + { + foldoutName = tag.TagID; + } + } + else + { + drawWarning = true; + foldoutName = "[!] Empty Slot"; + } + + EditorGUILayout.BeginHorizontal(); + expanded = EditorGUILayout.Foldout(expanded, foldoutName, true); + GUI.backgroundColor = wantsToDelete == 1 ? Color.red : Color.white; + GUI.enabled = expanded; + if (GUILayout.Button(wantsToDelete == 1 ? "Confirm?" : "Delete", EditorStyles.helpBox, GUILayout.Width(55))) + { + wantsToDelete++; + } + GUI.enabled = true; + if (!expanded) + wantsToDelete = 0; + + GUI.backgroundColor = Color.white; + + if(drawWarning) + EditorGUILayout.HelpBox("Invalid", MessageType.Warning); + EditorGUILayout.EndHorizontal(); + + if (expanded) + { + EditorGUI.indentLevel++; + DrawInfo(); + DrawBody(); + EditorGUI.indentLevel--; + } + } + + + void DrawInfo() + { + EditorGUILayout.BeginHorizontal(); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(propertyScriptable, scriptableNameContent); + if (EditorGUI.EndChangeCheck()) + { + //refreshes drawer + somethingChanged = true; + drawer = new GenericSharedDrawer(false); + + if (propertyScriptable.serializedObject.hasModifiedProperties) + propertyScriptable.serializedObject.ApplyModifiedProperties(); + + expanded = true; + } + EditorGUILayout.EndHorizontal(); + } + + void DrawBody() + { + drawer.OnInspectorGUI(propertyScriptable); + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta new file mode 100644 index 0000000..a33c496 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 44ca8d8eac0743e88fa01e22338f71f7 +timeCreated: 1674559685 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs new file mode 100644 index 0000000..7bff073 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs @@ -0,0 +1,73 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.UI.Core +{ + //handles drawing of each single effect + //with possibility to expand and directly draw the scriptable object as well + [System.Serializable] + class DatabaseSharedDrawer : SharedDrawer + { + SerializedProperty pairsProperty; + [SerializeField] AnimationElementDrawer[] elements; + + protected override void OnEnabled(SerializedObject baseObject) + { + base.OnEnabled(baseObject); + pairsProperty = baseObject.FindProperty("data"); + MatchEffectsWithArray(); + } + + void MatchEffectsWithArray() + { + if (elements == null || elements.Length != pairsProperty.arraySize) + { + elements = new AnimationElementDrawer[pairsProperty.arraySize]; + for (int i = 0; i < elements.Length; i++) + { + elements[i] = new AnimationElementDrawer(pairsProperty.GetArrayElementAtIndex(i)); + } + } + } + + protected override void _OnInspectorGUI() + { + MatchEffectsWithArray(); //putting this one here since might change after Undo + + for (var i = 0; i < elements.Length; i++) + { + var effect = elements[i]; + effect.Draw(); + if (effect.wantsToDelete >= 2) + { + pairsProperty.DeleteArrayElementAtIndex(i); + MatchEffectsWithArray(); + ApplyChanges(); + return; + } + + if (effect.somethingChanged) + { + ApplyChanges(); + effect.somethingChanged = false; + } + } + + //Adds new effect if there isn't any available slot already //TODO check every position + if (elements.Length == 0 || elements[elements.Length - 1].hasScriptable) + { + if(EditorGUILayout.Foldout(false, "->[Add new effect]", true)) + { + pairsProperty.InsertArrayElementAtIndex(pairsProperty.arraySize); + MatchEffectsWithArray(); + //Sets last element as empty + elements[elements.Length - 1].propertyScriptable.objectReferenceValue = null; + ApplyChanges(); + elements[elements.Length - 1].expanded = true; + return; + } + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta new file mode 100644 index 0000000..14db8f9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c02119de7d2e84ba9ad22ff6b6c23dfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta new file mode 100644 index 0000000..8c8d93e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 18ea5fac169d489ebc9f01ebedbd65be +timeCreated: 1677691490 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs new file mode 100644 index 0000000..97c8978 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.UI +{ + [System.Serializable] + internal class TextAnimatorInstallationData : ScriptableObject + { + [SerializeField] internal string latestVersion = "None"; //stores the latest version + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta new file mode 100644 index 0000000..147a6fc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9e2a5ebb2c224910b14d053825d88b4a +timeCreated: 1678369185 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs new file mode 100644 index 0000000..60f8e98 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs @@ -0,0 +1,52 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + [CustomEditor(typeof(TextAnimatorInstallationData))] + internal class TextAnimatorInstallationDataDrawer : Editor + { + TextAnimatorInstallationData script; + + void OnEnable() + { + script = (TextAnimatorInstallationData)target; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.HelpBox("This file is used by Text Animator to locate your installation path, so that you can move the folder anywhere you want, rename it and better organize your effects. Enjoy!", MessageType.None); + EditorGUILayout.Space(); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Installed version:"); + EditorGUILayout.LabelField(script.latestVersion); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + if (TextAnimatorSettings.Instance) + { + EditorGUILayout.HelpBox("If you wanted to edit the default settings instead, you can select the file via the button below.", MessageType.None); + if (GUILayout.Button("Select Settings")) + { + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + else + { + EditorGUILayout.HelpBox("It seems you don't have a settings file, which is necessary for Text Animator. Do you want to fix it now?", MessageType.Warning); + if (GUILayout.Button("Fix it for me")) + { + TextAnimatorSetupWindow.FixSettingsFileNotFound(); + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + + EditorGUILayout.Space(); + if (GUILayout.Button("Open About Window")) + { + TextAnimatorSetupWindow.Menu_ShowWindowAlways(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta new file mode 100644 index 0000000..0647367 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 88089012e3cf74143abc644150aba565 +timeCreated: 1678369185 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs new file mode 100644 index 0000000..4db1bad --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs @@ -0,0 +1,30 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + [CustomEditor(typeof(TextAnimatorSettings))] + public class TextAnimatorSettingsDrawer : Editor + { + bool extraSettings = false; + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + EditorGUILayout.Space(); + extraSettings = EditorGUILayout.Foldout(extraSettings, "Extra Settings", EditorStyles.foldoutHeader); + if (extraSettings) + { + if (GUILayout.Button("Reset Default Effects and Actions")) + { + if (EditorUtility.DisplayDialog("Text Animator", + "Are you sure you want to reset the default effects and actions?", "Yes", "No")) + { + TextAnimatorSetupWindow.ResetToBuiltIn(); + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta new file mode 100644 index 0000000..b03ae60 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 67c87275cac3743da833880fb7431757 +timeCreated: 1677691499 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs new file mode 100644 index 0000000..810862c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs @@ -0,0 +1,486 @@ +using System; +using Febucci.UI.Core; +using UnityEditor; +using UnityEngine; +using System.Linq; +using Febucci.UI.Actions; +using Febucci.UI.Effects; + +namespace Febucci.UI +{ + public class TextAnimatorSetupWindow : EditorWindow + { + const string currentVersion = "2.0.2"; + const string path_defaultInstallation = "Assets/Plugins/Febucci/Text Animator"; + + TextAnimatorInstallationData installationData; + bool settingsFileFound; + + + /// + /// Called whenever the editor is loaded, + /// e.g. useful for checking if the asset is imported + /// for the first time or after an update + /// + [InitializeOnLoadMethod] + internal static void TryShowingWindowOnLoad() + { + EditorApplication.delayCall += () => ShowWindow(true);; + } + + #region Menu Items + + const string menuParent = "Tools/Febucci/TextAnimator/"; + + [MenuItem(menuParent + "About Window", priority = 1)] + internal static void Menu_ShowWindowAlways() => ShowWindow(false); + + [MenuItem(menuParent + "Utils/Select Settings SO", priority = 11)] + static void Menu_SelectSettingsScriptable() + { + if (TextAnimatorSettings.Instance) + { + Selection.activeObject = TextAnimatorSettings.Instance; + } + else + { + if (EditorUtility.DisplayDialog("Settings not found", + "Text Animator's settings file has not been found. Do you want to run the setup and create it automatically?", + "Yes", "No")) + { + FixSettingsFileNotFound(); + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + } + + + #endregion + + #region Window + + static void ShowWindow(bool onlyOnUpdate) + { + // already installed + if (IsTextAnimatorInstalled(out var installationGUID)) + { + string installationPath = AssetDatabase.GUIDToAssetPath(installationGUID); + var installationData = AssetDatabase.LoadAssetAtPath(installationPath); + + // same version installed, no need to show the window + if (onlyOnUpdate && installationData.latestVersion == currentVersion) + { + return; + } + + //--- Updates to new version --- + UpdateProject(installationData); + } + else + { + //--- First time import --- + //Does nothing, asking the user to install with one click + } + + //Initializes the asset for the first time + var window = (TextAnimatorSetupWindow)GetWindow(typeof(TextAnimatorSetupWindow), true, + "Text Animator Setup", true); + window.maxSize = new Vector2(351, 485); + window.minSize = window.maxSize; + window.settingsFileFound = TextAnimatorSettings.Instance; + } + + bool triedInstallingOnce; + void OnGUI() + { + if (!installationData) + { + if (!triedInstallingOnce) + { + EditorGUILayout.LabelField("Installing...."); + triedInstallingOnce = true; + installationData = GetOrCreateInstallationData(); + Repaint(); + } + else + { + EditorGUILayout.LabelField("Unable to install package, please try to reopen this window from the Tools->Febucci menu"); + return; + } + } + + //--- HEADER --- + GUILayout.Box(TexturesLoader.AboutLogo, EditorStyles.wordWrappedLabel); + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Welcome!", EditorStyles.boldLabel); + EditorGUILayout.LabelField("Thank you for using Text Animator. Have fun bringing your projects to life!", + EditorStyles.wordWrappedLabel); + + EditorGUILayout.Space(); + + //--- VERSION STATUS --- + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Version:", EditorStyles.boldLabel); + EditorGUILayout.LabelField(installationData.latestVersion, EditorStyles.whiteMiniLabel); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + + if (!settingsFileFound) + { + FixSettingsFileNotFound(); + settingsFileFound = true; + } + + // --- LINKS etc. --- + EditorGUILayout.LabelField("Online Resources", EditorStyles.boldLabel); + EditorGUILayout.LabelField("Here are some useful resources.", EditorStyles.label); + + EditorGUILayout.BeginHorizontal(); + const string baseUrl = "https://febucci.com/text-animator-unity/"; + if (GUILayout.Button("What's New")) + { + Application.OpenURL($"{baseUrl}changelog/"); + } + + if (GUILayout.Button("Documentation")) + { + Application.OpenURL($"{baseUrl}docs/"); + } + + if (GUILayout.Button("Support")) + { + Application.OpenURL($"{baseUrl}support/"); + } + + EditorGUILayout.EndHorizontal(); + + + //--Extras-- + EditorGUILayout.LabelField("Extras", EditorStyles.boldLabel); + + EditorGUILayout.LabelField("Would you like to be included in a future Text Animator showcase?", + EditorStyles.wordWrappedMiniLabel); + if (GUILayout.Button("-> Submit your game/project")) + Application.OpenURL("https://www.febucci.com/text-animator-unity/showcase/"); + + EditorGUILayout.Space(1); + EditorGUILayout.LabelField("Please consider writing a review for the asset. It takes one minute but it really helps. Thanks!", + EditorStyles.wordWrappedMiniLabel); + if (GUILayout.Button("♥ Review on the Asset Store")) + Application.OpenURL("https://assetstore.unity.com/packages/slug/158707"); + + + GUILayout.Space(5); + EditorGUILayout.LabelField("Cheers! @febucci", EditorStyles.centeredGreyMiniLabel); + } + + #endregion + + #region Installation + + static TextAnimatorInstallationData GetOrCreateInstallationData() + { + if (IsTextAnimatorInstalled(out var installationGuid)) + { + return AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(installationGuid)); + } + + var data = _CreateScriptableAssetAtPath(path_defaultInstallation + "/Data", + "InstallationData"); + data.latestVersion = currentVersion; + EditorUtility.SetDirty(data); + AssetDatabase.SaveAssets(); + + return data; + } + + static bool IsTextAnimatorInstalled(out string installationGUID) + { + string[] path = AssetDatabase.FindAssets($"t:{nameof(TextAnimatorInstallationData)}"); + installationGUID = path.Length > 0 ? path[0] : string.Empty; + return path.Length > 0; + } + + static bool TryGetInstallationFolder(out string result) + { + if (!IsTextAnimatorInstalled(out var installationGUID)) + { + Debug.LogError("Unable to locate Text Animator's Installation file. Please re-run the setup."); + result = null; + return false; + } + + result = AssetDatabase.GUIDToAssetPath(installationGUID); + result = result.Substring(0, result.LastIndexOf('/')); + return true; + } + + #endregion + + /// + /// Creates built-in effects databases and assigns it to the settings file as default. + /// + /// + /// In case the settings file doesn't exist, it'll be created as well. + /// In case the built-in effects or databases already exist, they'll be overwritten. + /// + public static void ResetToBuiltIn() + { + //makes sure the asset is installed + GetOrCreateInstallationData(); + if (!TryGetInstallationFolder(out string installationFolder)) + { + Debug.LogError("Something went wrong in locating TextAnimator's installation data."); + return; + } + + var settings = GetOrCreateSettings(installationFolder); + CreateDefaultDatabases(installationFolder, + out var beh, + out var app, + out var act); + AssignDatabasesToSettings(settings, beh, app, act); + } + + #region Databases and Tags + + /// + /// Creates default effects and actions databases. + /// + /// + /// + /// + /// + /// In case they already exist, they'll get overwritten. + static void CreateDefaultDatabases(string installationFolder, out AnimationsDatabase behaviors, out AnimationsDatabase appearances, out ActionDatabase actions) + { + string progressTitle = "Text Animator"; + + // --- DATABASES --- + EditorUtility.DisplayProgressBar(progressTitle, "Creating Behaviors Database", 1/4f); + behaviors = _CreateDatabase(installationFolder, "Behaviors", "Behaviors Database", EffectCategory.Behaviors); + + EditorUtility.DisplayProgressBar(progressTitle, "Creating Appearances Database", 2/4f); + appearances = _CreateDatabase(installationFolder, "Appearances", "Appearances Database", EffectCategory.Appearances); + + EditorUtility.DisplayProgressBar(progressTitle, "Creating Actions Database", 3/4f); + actions = _CreateDatabase(installationFolder, "Actions", "Actions Database", EffectCategory.None); + + AssetDatabase.SaveAssets(); + EditorUtility.ClearProgressBar(); + } + + public static DatabaseType _CreateDatabase(string installationFolder, string folderName, string fileName, EffectCategory category) + where DatabaseType : Database where ElementType : ScriptableObject, ITagProvider + { + string databasePath = installationFolder + $"/{folderName}"; + + var database = _CreateScriptableAssetAtPath(databasePath, fileName); + var types = GetScriptableElementsFromAssembly(); + for (var i = 0; i < types.Length; i++) + { + if (TryCreatingDefaultTagScriptable(types[i], category, out var so)) + { + PlaceScriptableAtPath(so, databasePath); + database.Add(so as ElementType); + } + } + EditorUtility.SetDirty(database); + SerializedObject dat = new SerializedObject(database); + dat.ApplyModifiedProperties(); + return database; + } + + static bool TryCreatingDefaultTagScriptable(System.Type type, EffectCategory category, out ScriptableObject result) + { + var attribute = type.GetCustomAttributes(typeof(TagInfoAttribute), true).FirstOrDefault() as TagInfoAttribute; + if (attribute == null) + { + //skips default elements that do not have EffectInfo attribute + result = default; + return false; + } + + //skips empty tags by design, e.g. Composite animation + if (string.IsNullOrEmpty(attribute.tagID)) + { + result = default; + return false; + } + + if (attribute is EffectInfoAttribute effectInfo) + { + if (!effectInfo.category.HasFlag(category)) + { + result = default; + return false; + } + } + + var so = CreateInstance(type); + so.name = type.Name; + + //changes scriptable field based on default value attributes + var defaultValueAttributes = + type.GetCustomAttributes(typeof(DefaultValueAttribute), true) as DefaultValueAttribute[]; + + SerializedObject serializedSo = new SerializedObject(so); + var tagID = serializedSo.FindProperty("tagID"); + + if (defaultValueAttributes != null) + { + foreach (var info in defaultValueAttributes) + { + serializedSo.FindProperty(info.variableName).floatValue = info.variableValue; + } + } + + tagID.stringValue = attribute.tagID; + serializedSo.ApplyModifiedProperties(); + result = so; + return true; + } + + + #endregion + + + #region Settings + + static void AssignDatabasesToSettings(TextAnimatorSettings settings, AnimationsDatabase behaviorsDatabase, + AnimationsDatabase appearanceDatabase, ActionDatabase actionsDatabase) + { + SerializedObject serialized = new SerializedObject(settings); + serialized.FindProperty(nameof(settings.actions)) + .FindPropertyRelative(nameof(settings.actions.defaultDatabase)).objectReferenceValue = actionsDatabase; + + serialized.FindProperty(nameof(settings.behaviors)) + .FindPropertyRelative(nameof(settings.behaviors.defaultDatabase)).objectReferenceValue = + behaviorsDatabase; + + serialized.FindProperty(nameof(settings.appearances)) + .FindPropertyRelative(nameof(settings.appearances.defaultDatabase)).objectReferenceValue = + appearanceDatabase; + + serialized.ApplyModifiedProperties(); + serialized.Update(); + } + + + static TextAnimatorSettings GetOrCreateSettings(string installationFolder) + { + if(TextAnimatorSettings.Instance) + return TextAnimatorSettings.Instance; + + return _CreateScriptableAssetAtPath(installationFolder + "/Resources", TextAnimatorSettings.expectedName); + } + + + + /// + /// Creates a new settings file (with databases) inside the installation's Resources folder. + /// Also assigns default effects and actions databases, + /// either looking if they already exist or by creating new ones. + /// + /// + /// P.S. A new settings file will be created even if it already exists but in another folder, + /// as the user might have moved it for archive/backups purposes. + /// + public static void FixSettingsFileNotFound() + { + GetOrCreateInstallationData(); + if (!TryGetInstallationFolder(out string installationFolder)) + { + Debug.LogError("Something went wrong in locating TextAnimator's installation data."); + return; + } + + DatabaseType GetOrCreateDatabase(string folderName, string fileName, EffectCategory category) + where DatabaseType : Database where ElementType : ScriptableObject, ITagProvider + { + string databaseGuid = AssetDatabase.FindAssets($"t:{nameof(DatabaseType)}").FirstOrDefault(); + + if (!string.IsNullOrEmpty(databaseGuid)) + { + return AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(databaseGuid)); + } + + // tries creating new database + if (TryGetInstallationFolder(out installationFolder)) + { + return _CreateDatabase(installationFolder, folderName, fileName, category); + } + + return null; + } + + var settings = GetOrCreateSettings(installationFolder); + AssignDatabasesToSettings(settings, + GetOrCreateDatabase("Behaviors", "Behaviors Database", EffectCategory.Behaviors), + GetOrCreateDatabase("Appearances", + "Appearances Database", EffectCategory.Appearances), + GetOrCreateDatabase("Actions", "Actions Database", EffectCategory.None)); + } + + + #endregion + + #region Updating to new versions + + /// + /// Checks for stuff and updates some project files if needed + /// + /// + static void UpdateProject(TextAnimatorInstallationData installationData) + { + //TODO on new update + installationData.latestVersion = currentVersion; + EditorUtility.SetDirty(installationData); + } + + #endregion + + #region Utilties + + public static void _CreateDirectoryIfDoesntExist(string path) + { + string[] folders = path.Split('/'); + string subPath = folders[0]; + for (int i = 1; i < folders.Length; i++) + { + if (!AssetDatabase.IsValidFolder(subPath + '/' + folders[i])) + AssetDatabase.CreateFolder(subPath, folders[i]); + subPath += $"/{folders[i]}"; + } + } + + static Type[] GetScriptableElementsFromAssembly() where T : ScriptableObject, ITagProvider + { + return System.AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => typeof(T).IsAssignableFrom(p) && !p.IsInterface && !p.IsAbstract) + .Where(s => s.Assembly.FullName.StartsWith("Febucci.TextAnimator.Runtime")) + .ToArray(); + } + + public static T _CreateScriptableAssetAtPath(string path, string objectName) where T : ScriptableObject + { + var scriptable = CreateInstance(); + scriptable.name = objectName; + PlaceScriptableAtPath(scriptable, path); + return scriptable; + } + + static void PlaceScriptableAtPath(ScriptableObject scriptable, string path) + { + _CreateDirectoryIfDoesntExist(path); + AssetDatabase.CreateAsset(scriptable, path + $"/{scriptable.name}.asset"); + } + + #endregion + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta new file mode 100644 index 0000000..a64a070 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0301c4642b7847db8af9a12e47083bf3 +timeCreated: 1677691499 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta new file mode 100644 index 0000000..afd6600 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa8ee49190adc45c5a5fea31311af75a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs new file mode 100644 index 0000000..35598e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs @@ -0,0 +1,55 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + /// + /// Could draw anything + /// + class GenericSharedDrawer : SharedDrawer + { + + bool showScript; + public GenericSharedDrawer(bool showScript) + { + this.showScript = showScript; + } + + protected override void _OnInspectorGUI() + { + //draws every visible property (first level children only) of the base serialized object + var iterator = baseObject.GetIterator(); + iterator.NextVisible(true); + do + { + if (iterator.name == "m_Script") + { + if (showScript) + { + GUI.enabled = false; + EditorGUILayout.PropertyField(iterator, true); + GUI.enabled = true; + } + + continue; + } + + if (iterator.isArray) + { + EditorGUILayout.PropertyField(iterator, true); + } + else + { + EditorGUILayout.BeginHorizontal(); + //if (iterator.displayName.Length > 0) + //EditorGUILayout.PrefixLabel(iterator.displayName.Replace("Base ", "")); + EditorGUILayout.PropertyField(iterator, true); + //EditorGUILayout.PropertyField(iterator, GUIContent.none, true); + EditorGUILayout.EndHorizontal(); + } + + } while (iterator.NextVisible(false)) ; + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta new file mode 100644 index 0000000..40e404d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f18ab2a0e017d4193b01c358f796c4b2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs new file mode 100644 index 0000000..d8dfad3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs @@ -0,0 +1,69 @@ +using UnityEditor; + +namespace Febucci.UI.Core +{ + /// + /// Base class that can be used to create drawers used by multiple + /// custom editors, both components and scriptable objects + /// + [System.Serializable] + abstract class SharedDrawer + { + protected SerializedProperty baseProperty; + protected SerializedObject baseObject; + bool initialized; + + protected virtual void OnEnabled(SerializedObject baseObject) { } + + public void OnInspectorGUI(SerializedProperty baseProperty) + { + if(baseProperty == null) return; + if(baseProperty.objectReferenceValue == null) return; + + if (baseProperty != this.baseProperty) + initialized = false; + + if(!initialized) + { + this.baseProperty = baseProperty; + //hacky unity way to reach the actual serialized object + this.baseObject = new SerializedObject(baseProperty.objectReferenceValue); + OnEnabled(baseObject); + initialized = true; + } + + baseObject.Update(); + _OnInspectorGUI(); + + ApplyChanges(); + } + + public void OnInspectorGUI(SerializedObject baseObject) + { + if (baseObject == null) return; + if (this.baseObject != baseObject) + initialized = false; + + if (!initialized) + { + this.baseObject = baseObject; + OnEnabled(baseObject); + initialized = true; + } + + baseObject.Update(); + _OnInspectorGUI(); + + ApplyChanges(); + } + + protected virtual void _OnInspectorGUI() { } + + protected void ApplyChanges() + { + if (baseObject.hasModifiedProperties) + baseObject.ApplyModifiedProperties(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta new file mode 100644 index 0000000..0dc98a3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f91133a2133874ec7a3239f6932eefad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs new file mode 100644 index 0000000..e112634 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs @@ -0,0 +1,75 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + public static class TexturesLoader + { + const string localPath_resourcesFolder = "Text Animator"; + + static Texture aboutLogo; + public static Texture AboutLogo + { + get + { + if(!aboutLogo) aboutLogo = Resources.Load(localPath_resourcesFolder+"/about_logo"); + return aboutLogo; + } + } + + + static Texture stopIcon; + public static Texture StopIcon + { + get + { + if(!stopIcon) stopIcon = Resources.Load(localPath_resourcesFolder+"/stop_icon"); + return stopIcon; + } + } + + static Texture restartIcon; + public static Texture RestartIcon + { + get + { + if(!restartIcon) restartIcon = Resources.Load(localPath_resourcesFolder+"/restart_icon"); + return restartIcon; + } + } + + static Texture saveIcon; + public static Texture SaveIcon + { + get + { + if(!saveIcon) saveIcon = Resources.Load(localPath_resourcesFolder+"/save_icon"); + return saveIcon; + } + } + + static Texture playIcon; + public static Texture PlayIcon + { + get + { + if(!playIcon) playIcon = Resources.Load(localPath_resourcesFolder+"/play_icon"); + return playIcon; + } + } + + static Texture pauseIcon; + public static Texture PauseIcon + { + get + { + if(!pauseIcon) pauseIcon = Resources.Load(localPath_resourcesFolder+"/pause_icon"); + return pauseIcon; + } + } + + + public static Texture WarningIcon => EditorGUIUtility.IconContent("Warning").image; + public static Texture ErrorIcon => EditorGUIUtility.IconContent("Error").image; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta new file mode 100644 index 0000000..85f01ca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bfd3592baf4bc4a84a1c008acf9aac45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef new file mode 100644 index 0000000..092219b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Febucci.TextAnimator.Editor", + "rootNamespace": "", + "references": [ + "GUID:1e113d3b5d77bc04eab508251483e8ff" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta new file mode 100644 index 0000000..6e1d414 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0306e69412d8fbf41a94465bbaf34341 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta new file mode 100644 index 0000000..039957c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44dfac1202f97428c8f53d2d01bc88cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta new file mode 100644 index 0000000..d1d987a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a149d8b764bcf4a398f25186fb0db4e4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png new file mode 100644 index 0000000..7862fdc Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta new file mode 100644 index 0000000..c5cc739 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 04f06a54beeb7574a8c2b2083e7be396 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 4c61e790940ecb64e876d955039cd056 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png new file mode 100644 index 0000000..cf1056c Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta new file mode 100644 index 0000000..afa0f43 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 58094e2ec45f7480e81fb4a78bc2dd66 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png new file mode 100644 index 0000000..49f3649 Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png.meta new file mode 100644 index 0000000..0a05054 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 8d8fcd591cdad453fb3c120cb0d3f43d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png new file mode 100644 index 0000000..5576087 Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png.meta new file mode 100644 index 0000000..0c5817a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6ca8dac30112340e78d79a57c6348d72 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png new file mode 100644 index 0000000..8a480e4 Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta new file mode 100644 index 0000000..7990162 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 039155adb637742a997e9d56b089e95f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png new file mode 100644 index 0000000..d91c70c Binary files /dev/null and b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png differ diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta new file mode 100644 index 0000000..f3c448f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 9c056a25dd76643ba8f1ee229906a71b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta new file mode 100644 index 0000000..361de8b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df7d5220397fe2547bef0d83a82cd45c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta new file mode 100644 index 0000000..5062453 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f9d800b5adc74d4f9570b41fc986a5e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta new file mode 100644 index 0000000..3aae68a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a82ba40ede495c24a8ac264fc5945681 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta new file mode 100644 index 0000000..43a79c7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5ac60f2cc66e4d4ca386fe558fd4be6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef new file mode 100644 index 0000000..81ab5c0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef @@ -0,0 +1,30 @@ +{ + "name": "Febucci.TextAnimator.TMP.Runtime", + "rootNamespace": "", + "references": [ + "GUID:1e113d3b5d77bc04eab508251483e8ff", + "GUID:6055be8ebefd69e48b49212b09b47b2f" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [ + "TANIM_TMP_PRESENT" + ], + "versionDefines": [ + { + "name": "com.unity.textmeshpro", + "expression": "", + "define": "TANIM_TMP_PRESENT" + }, + { + "name": "com.unity.ugui", + "expression": "2.0.0", + "define": "TANIM_TMP_PRESENT" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta new file mode 100644 index 0000000..5823305 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e539678cf69674b418d82e89c16a9753 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs new file mode 100644 index 0000000..211df45 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs @@ -0,0 +1,86 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public class TMPTagParser : TagParserBase + { + readonly bool richTagsEnabled; + + //PS no "noparse" since it's already checked + static readonly TMPTagInfo[] lookups = new[] + { + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""),new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo( ""), new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo("") + }; + + struct TMPTagInfo + { + public readonly string tagOpening; + public readonly bool increasesTextLength; + + public TMPTagInfo(string tagOpening, bool increasesTextLength = false) + { + this.tagOpening = tagOpening; + this.increasesTextLength = increasesTextLength; + } + } + + public TMPTagParser(bool richTagsEnabled, char openingBracket, char closingBracket, char closingTagSymbol) + : base(openingBracket, closingBracket, closingTagSymbol) + { + this.richTagsEnabled = richTagsEnabled; + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!richTagsEnabled) return false; + + string fullTag = startSymbol + textInsideBrackets + endSymbol; //TODO improve + + foreach (var lookupTag in lookups) + { + if (fullTag.StartsWith(lookupTag.tagOpening, true, System.Globalization.CultureInfo.InvariantCulture)) + { + finalTextBuilder.Append(fullTag); + if (lookupTag.increasesTextLength) realTextIndex++; + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta new file mode 100644 index 0000000..a523d14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a3d19aed716a0144afe3d3676bee59c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs new file mode 100644 index 0000000..7f3addf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs @@ -0,0 +1,238 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using TMPro; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Animates a TMP text component, both UI or World. + /// See for the base class information. + /// + [RequireComponent(typeof(TMP_Text))] + [AddComponentMenu("Febucci/TextAnimator/Text Animator - Text Mesh Pro")] + public sealed class TextAnimator_TMP : TAnimCore + { + /// + /// The TextMeshPro text component linked to this Text Animator + /// + public TMP_Text TMProComponent + { + get + { + if (tmpComponent) return tmpComponent; + CacheComponentsOnce(); + return tmpComponent; + } + } + + TMP_Text tmpComponent; + TMP_TextInfo textInfo; + TMP_InputField attachedInputField; + + //----- Values cache ----- + bool autoSize; + Rect sourceRect; + Color sourceColor; + int tmpFirstVisibleCharacter; + int tmpMaxVisibleCharacters; + //----- + + bool componentsCached; + bool isUI; + void CacheComponentsOnce() + { + if(componentsCached) return; + + if (!gameObject.TryGetComponent(out tmpComponent)) + { + Debug.LogError($"TextAnimator_TMP {name} requires a TMP_Text component to work.", gameObject); + } + + gameObject.TryGetComponent(out attachedInputField); + componentsCached = true; + isUI = tmpComponent is TextMeshProUGUI; + } + + protected override void OnInitialized() + { + CacheComponentsOnce(); + + //prevents the text from being rendered at startup + //e.g. in case user has stuff on the inspector + tmpComponent.renderMode = TextRenderFlags.DontRender; + } + + protected override void OnEnable() + { + base.OnEnable(); + textInfo = TMProComponent.textInfo; + } + + #region Text + + protected override TagParserBase[] GetExtraParsers() + { + return new TagParserBase[1] {new TMPTagParser(tmpComponent.richText, '<', '/', '>')}; + } + + public override string GetOriginalTextFromSource() => TMProComponent.text; + public override string GetStrippedTextFromSource() => tmpComponent.GetParsedText(); + + /// + /// Equivalent to setting the text to the TMP component, without parsing it. + /// Please use or instead. + /// + /// + public override void SetTextToSource(string text) + { + //Avoids rendering the text for half a frame + TMProComponent.renderMode = TextRenderFlags.DontRender; + + //--generates mesh and text info-- + if (attachedInputField) attachedInputField.text = text; //renders input field + else tmpComponent.text = text; //<-- sets the text + + OnForceMeshUpdate(); + + textInfo = tmpComponent.GetTextInfo(tmpComponent.text); + +#if UNITY_EDITOR + if (!Application.isPlaying) + { + //needed to update tmp mesh from editor + tmpComponent.havePropertiesChanged = true; + UnityEditor.EditorUtility.SetDirty(tmpComponent); + } + else +#endif + tmpComponent.renderMode = TextRenderFlags.DontRender; + } + #endregion + + protected override bool IsReady() => componentsCached && (!isUI || tmpComponent.canvas); + #region Characters + protected override int GetCharactersCount() => textInfo.characterCount; + #endregion + + #region Checks + protected override bool HasChangedRenderingSettings() + { + return tmpComponent.havePropertiesChanged + //changing the properties below doesn't seem to trigger 'havePropertiesChanged', so we're checking them manually + || tmpComponent.enableAutoSizing != autoSize + || tmpComponent.rectTransform.rect != sourceRect + || tmpComponent.color != sourceColor + || tmpComponent.firstVisibleCharacter != tmpFirstVisibleCharacter + || tmpComponent.maxVisibleCharacters != tmpMaxVisibleCharacters; + } + + protected override bool HasChangedText(string strippedText) + { + if(string.IsNullOrEmpty(tmpComponent.text) && string.IsNullOrEmpty(strippedText)) + return false; + + if (string.IsNullOrEmpty(tmpComponent.text) != string.IsNullOrEmpty(strippedText)) + return true; + + return !tmpComponent.text.Equals(strippedText); + } + + #endregion + + #region Mesh + + protected override void CopyMeshFromSource(ref CharacterData[] characters) + { + autoSize = tmpComponent.enableAutoSizing; + sourceRect = tmpComponent.rectTransform.rect; + sourceColor = tmpComponent.color; + tmpFirstVisibleCharacter = tmpComponent.firstVisibleCharacter; + tmpMaxVisibleCharacters = tmpComponent.maxVisibleCharacters; + + TMP_CharacterInfo currentCharInfo; + + //Updates the characters sources + for (int i = 0; i < textInfo.characterCount && i < characters.Length; i++) + { + currentCharInfo = textInfo.characterInfo[i]; + characters[i].info.isRendered = currentCharInfo.isVisible; + characters[i].info.character = currentCharInfo.character; + //Updates TMP char info + //characters[i].current.tmp_CharInfo = textInfo.characterInfo[i]; + + //Copies source data from the mesh info only if the character is valid, otherwise its vertices array will be null and tAnim will start throw errors + if (!currentCharInfo.isVisible) continue; + + characters[i].info.pointSize = currentCharInfo.pointSize; + + //Updates vertices + for (byte k = 0; k < TextUtilities.verticesPerChar; k++) + { + characters[i].source.positions[k] = textInfo.meshInfo[currentCharInfo.materialReferenceIndex].vertices[currentCharInfo.vertexIndex + k]; + } + + //Updates colors + for (byte k = 0; k < TextUtilities.verticesPerChar; k++) + { + characters[i].source.colors[k] = textInfo.meshInfo[currentCharInfo.materialReferenceIndex].colors32[currentCharInfo.vertexIndex + k]; + } + } + } + + protected override void PasteMeshToSource(CharacterData[] characters) + { + + TMP_CharacterInfo currentCharInfo; + + //Updates the mesh + for (int i = 0; i < textInfo.characterCount && i < CharactersCount; i++) + { + currentCharInfo = textInfo.characterInfo[i]; + //Avoids updating if we're on an invisible character, like a spacebar + //Do not switch this with "i tmpComponent.ForceMeshUpdate(true); + #endregion + + #region Obsolete + + [System.Obsolete("This method is Obsolete. Please check through the 'Characters' array instead.")] + public bool TryGetNextCharacter(out TMP_CharacterInfo result) + { + if(latestCharacterShown.index TMProComponent; + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta new file mode 100644 index 0000000..c0dfd5a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8ace8ced0e81c847968cdca0aeda757 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta new file mode 100644 index 0000000..1a70987 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fcc9bd3818c90824396a4b66126b13d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs new file mode 100644 index 0000000..9d3c4ed --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs @@ -0,0 +1,14 @@ +namespace Febucci.UI +{ + public enum AnimationLoop + { + Update = 0, + + LateUpdate = 1, + + /// + /// Via Script + /// + Script = 2 + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta new file mode 100644 index 0000000..c4ab1f7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 98cf9e54383e4c35bd21cabe037c5fbc +timeCreated: 1672434576 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs new file mode 100644 index 0000000..d581d9e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs @@ -0,0 +1,1342 @@ +using System; +using System.Text; +using Febucci.UI.Actions; +using Febucci.UI.Core.Parsing; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Core +{ + [DisallowMultipleComponent] + [HelpURL("https://www.febucci.com/text-animator-unity/docs/how-to-add-effects-to-your-texts/")] + public abstract class TAnimCore : MonoBehaviour + { + #region Types + enum ShowTextMode : byte + { + Hidden = 0, + Shown = 1, + UserTyping = 2, + Refresh = 3 + } + #endregion + + #region Variables + bool initialized; + bool requiresTagRefresh; + + #region Options + /// + /// If the source text changes, should the typewriter start automatically? + /// + /// + /// Requires a Typewriter component if true. + /// + [Tooltip("If the source text changes, should the typewriter start automatically? Requires a Typewriter component if true.\nP.s. Previously, this option was called 'Use Easy Integration'.")] + public bool typewriterStartsAutomatically = false; + TypewriterCore _typewriterCache; + /// + /// Linked TAnimPlayer to this component + /// + TypewriterCore typewriter + { + get + { + if (_typewriterCache != null) + return _typewriterCache; + +#if UNITY_2019_2_OR_NEWER + if(!TryGetComponent(out _typewriterCache)) + { + Debug.LogError($"Typewriter component is null on GameObject {gameObject.name}. Please add a typewriter on the same GameObject or set 'Typewriter Starts Automatically' to false.", this.gameObject); + } +#else + _tAnimPlayer = GetComponent(); + Assert.IsNotNull(_tAnimPlayer, $"Text Animator Player component is null on GameObject {gameObject.name}"); +#endif + + return _typewriterCache; + } + } + + + /// + /// Controls when Text Animator should update its effects. Set it to if you want to control the animations from your own loop, invoking the method. + /// + [Tooltip("Controls when this TextAnimator component should update its effects. Defaults in the 'Update' Loop.\nSet it to 'Manual' if you want to control the animations from your own loop instead.")] + public AnimationLoop animationLoop = AnimationLoop.Update; + + /// + /// Chooses which Time Scale to use when automatically animating effects (in other words, when the Update Mode is not set to Script). Set it to if you want to animate effects even when the game is paused. + /// + [Tooltip("Chooses which Time Scale to use when animating effects.\nSet it to 'Unscaled' if you want to animate effects even when the game is paused.")] + public TimeScale timeScale = TimeScale.Scaled; + + #endregion + + #region Text + /// + /// The original text pasted to Text Animator, with all its tags + /// + [SerializeField, TextArea(4, 10), HideInInspector] string _text = string.Empty; + public string textFull + { + get => _text; + set + { + if(typewriterStartsAutomatically + #if UNITY_EDITOR + && Application.isPlaying + #endif + && typewriter + ) + { + SetTypewriterText(value); + return; + } + + SetText(value); + } + } + + /// + /// The text without any Text Animator tag + /// + /// + /// PS. this might still contain other tags from different supported plugins, like "color" from TMPro. + /// To get the full stripped text, see . + /// + public string textWithoutTextAnimTags { get; private set; } = string.Empty; + public string textWithoutAnyTag { get; private set; } = string.Empty; + + bool hasText => charactersCount > 0; + + public CharacterData latestCharacterShown { get; private set; } + + /// + /// true if the text is entirely visible, including waiting for appearance effects to finish + /// (as they might still hide a character until the very end) + /// + /// + /// You can use this to check if all the letters have been shown. + /// + public bool allLettersShown + { + get + { + if (_maxVisibleCharacters < charactersCount) return false; + if (_firstVisibleCharacter == _maxVisibleCharacters) return false; + + for (int i = 0; i < charactersCount; i++) + { + if (!characters[i].isVisible) + { + if (characters[i].passedTime <= 0) + return false; + } + else + { + if (characters[i].info.isRendered && characters[i].passedTime < characters[i].info.appearancesMaxDuration) + return false; + } + } + + return true; + } + } + + + /// + /// true if any letter is still visible in the text + /// + /// + /// You can use this to check if the disappearance effects are still running. + /// + public bool anyLetterVisible //TODO test + { + get + { + if (characters.Length == 0) return true; + + bool IsCharacterVisible(int index) + { + return characters[index].passedTime > 0; + } + + //searches for the first character or the last one first, since they're most probably the first ones to be shown (based on orientation) + if (IsCharacterVisible(0) || IsCharacterVisible(charactersCount-1)) + return true; + + //searches for the other, which might still be running their appearance/disappearance + for(int i=1;i + /// Number of characters in the text + /// + int charactersCount; + public int CharactersCount + { + get => charactersCount; + } + CharacterData[] characters; + /// + /// The array of characters currently present in the text. + /// + /// + /// This array might be larger than the actual number of characters, so please cycle for instead. + /// + public CharacterData[] Characters + { + get => characters; + } + + int wordsCount; + /// + /// Number of words in the text + /// + public int WordsCount + { + get => wordsCount; + } + + WordInfo[] words; + /// + /// The array of words currently present in the text. + /// + /// + /// This array might be larger than the actual number of words, so please cycle for instead. + /// + public WordInfo[] Words => words; + + //---CHARS SIZE/INTENSITY--- + + /// + /// True if you want the animations to be uniform/consistent across different font sizes. Default/Suggested to leave this as true, and change . Otherwise, effects will move more when the text is smaller (requires less space on screen). + /// + [Tooltip("True if you want the animations to be uniform/consistent across different font sizes. Default/Suggested to leave this as true, and change the 'Reference Font Size'.\nOtherwise, effects will move more when the text is smaller (requires less space on screen)")] + public bool useDynamicScaling = true; + + /// + /// Font size that will be used as reference to keep animations consistent/uniform at different scales. Works only if is set to true. + /// + [Tooltip("Font size that will be used as reference to keep animations consistent/uniform at different scales.")] + public float referenceFontSize = 10; + + + //---OTHERS--- + + /// + /// True if you want the animator's time to be reset on new text. + /// + [Tooltip("True if you want the animator's time to be reset on new text.")] + [FormerlySerializedAs("isResettingEffectsOnNewText")] public bool isResettingTimeOnNewText = true; + + #endregion + + #region Effects and Databases + + bool isAnimatingBehaviors = true; + bool isAnimatingAppearances = true; + + /// + /// True if you want to use the databases referenced in the asset, otherwise you can specify which databases to use in this component. + /// + [Tooltip("Lets you use the databases referenced in the 'TextAnimatorSettings' asset.\nSet to false if you'd like to specify which databases to use in this component.")] + public bool useDefaultDatabases = true; + + // ---------------- + // -- Databases -- + // ---------------- + [SerializeField] AnimationsDatabase databaseBehaviors; + /// + /// Behaviors Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public AnimationsDatabase DatabaseBehaviors + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.behaviors.defaultDatabase : databaseBehaviors; + set + { + useDefaultDatabases = false; + databaseBehaviors = value; + requiresTagRefresh = true; + } + } + + [SerializeField] AnimationsDatabase databaseAppearances; + /// + /// Appearances Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public AnimationsDatabase DatabaseAppearances + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.appearances.defaultDatabase : databaseAppearances; + set + { + useDefaultDatabases = false; + databaseAppearances = value; + requiresTagRefresh = true; + } + } + + // ---------------- + // -- Effects -- + // ---------------- + AnimationRegion[] behaviors; + /// + /// All the behavior effects that are applied to the current text. + /// + public AnimationRegion[] Behaviors + { + get => behaviors; + set => behaviors = value; + } + + AnimationRegion[] appearances; + /// + /// All the appearance effects that are applied to the current text. + /// + public AnimationRegion[] Appearances + { + get => appearances; + set => appearances = value; + } + AnimationRegion[] disappearances; + + /// + /// All the disappearance effects that are applied to the current text. + /// + public AnimationRegion[] Disappearances + { + get => disappearances; + set => disappearances = value; + } + #endregion + + #region Actions and Events + ActionMarker[] actions; + + /// + /// All the actions that have been parsed from the current text, and that will be used by a component if present. + /// + public ActionMarker[] Actions + { + get => actions; + set => actions = value; + } + + + [SerializeField] ActionDatabase databaseActions; + /// + /// Actions Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public ActionDatabase DatabaseActions + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.actions.defaultDatabase : databaseActions; + set + { + databaseActions = value; + requiresTagRefresh = true; + } + } + + EventMarker[] events; + /// + /// Events that have been parsed from the current text, and that will be used by a component if present. + /// + public EventMarker[] Events + { + get => events; + set => events = value; + } + + #endregion + + #region Default Tags + + struct DefaultRegion + { + public string[] tagWords; + public AnimationRegion region; + + public DefaultRegion(string tagID, VisibilityMode visibilityMode, AnimationScriptableBase scriptable, string[] tagWords) + { + this.tagWords = tagWords; + this.region = new AnimationRegion(tagID, visibilityMode, scriptable); + } + } + + [SerializeField] string[] defaultAppearancesTags = new []{"size"}; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultAppearancesTags + { + get => defaultAppearancesTags; + set + { + defaultAppearancesTags = value; + requiresTagRefresh = true; + } + } + [SerializeField] string[] defaultDisappearancesTags = new []{"fade"}; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultDisappearancesTags + { + get => defaultDisappearancesTags; + set + { + defaultDisappearancesTags = value; + requiresTagRefresh = true; + } + } + + [SerializeField] string[] defaultBehaviorsTags; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultBehaviorsTags + { + get => defaultBehaviorsTags; + set + { + defaultBehaviorsTags = value; + requiresTagRefresh = true; + } + } + #endregion + + #endregion + + #region Abstract / Virtual + /// + /// Called once when the component is initialized. + /// + protected virtual void OnInitialized() { } + + //---------------- + //--Setting Text-- + //---------------- + public abstract string GetOriginalTextFromSource(); + public abstract string GetStrippedTextFromSource(); + public abstract void SetTextToSource(string text); + + //---------------- + //--Checking Changes-- + //---------------- + protected abstract bool HasChangedText(string strippedText); + protected abstract bool HasChangedRenderingSettings(); + + //----------------- + //--Setting Chars-- + //----------------- + protected abstract int GetCharactersCount(); + + //----------------- + //---Setting Mesh-- + //----------------- + protected abstract void OnForceMeshUpdate(); + protected abstract void CopyMeshFromSource(ref CharacterData[] characters); + protected abstract void PasteMeshToSource(CharacterData[] characters); + #endregion + + bool requiresMeshUpdate; + void ForceMeshUpdate() + { + requiresMeshUpdate = false; + OnForceMeshUpdate(); + } + + void Awake() + { + requiresTagRefresh = true; + TryInitializing(); + } + + void TryInitializing() + { + #if UNITY_EDITOR + if (!Application.isPlaying) + { + if(characters == null) //forces reset in editor + initialized = false; + } + #endif + + if (initialized) return; + + initialized = true; + + TextUtilities.Initialize(); + charactersCount = 0; + characters = new CharacterData[0]; + + wordsCount = 0; + words = new WordInfo[0]; + + behaviors = new AnimationRegion[0]; + appearances = new AnimationRegion[0]; + disappearances = new AnimationRegion[0]; + actions = new ActionMarker[0]; + events = new EventMarker[0]; + + if(DatabaseActions) DatabaseActions.ForceBuildRefresh(); + if(DatabaseAppearances) DatabaseAppearances.ForceBuildRefresh(); + if(DatabaseBehaviors) DatabaseBehaviors.ForceBuildRefresh(); + + OnInitialized(); + } + + /// + /// Contains TextAnimator's current time values. + /// + [HideInInspector] public TimeData time; + + + void UpdateUniformIntensity() + { + if(useDynamicScaling) + { + for (int i = 0; i < characters.Length; i++) + { + // multiplies by current character size, which could be modified by "size" tags and so + // be different than the basic tmp font size value + characters[i].UpdateIntensity(referenceFontSize); + } + } + else + { + for (int i = 0; i < characters.Length; i++) + { + characters[i].uniformIntensity = 1; + } + } + } + + public enum DefaultTagsMode + { + /// + /// Applies effects only to characters that don't have any. + /// + Fallback = 0, + /// + /// Applies effects to all the characters, even if they already have other tags via text. + /// + Constant = 1 + } + + /// + /// Controls how default tags should be applied.\n"Fallback" will apply the effects only to characters that don't have any.\n"Constant" will apply the default effects to all the characters, even if they already have other tags via text. + /// + [Tooltip("Controls how default tags should be applied.\n\"Fallback\" will apply the effects only to characters that don't have any.\n\"Constant\" will apply the default effects to all the characters, even if they already have other tags via text.")] + public DefaultTagsMode defaultTagsMode = DefaultTagsMode.Fallback; + + #region Text + + protected virtual TagParserBase[] GetExtraParsers(){ return Array.Empty(); } + + TextAnimatorSettings settings; + void ConvertText(string textToParse, ShowTextMode showTextMode) + { + #region Local Methods + void PopulateCharacters() + { + if (characters.Length < charactersCount) + Array.Resize(ref characters, charactersCount); + + for (int i = 0; i < charactersCount; i++) + { + //--Resets info-- + characters[i].ResetInfo(i); + + //--Assigns effect times-- + float CalculateRegionMaxDuration(AnimationRegion[] tags) + { + float maxDuration = 0; + float currentDuration; + //For each tag + foreach(var tag in tags) + { + //for each range + foreach(var range in tag.ranges) + { + //If the region contains the character + if (i>=range.indexes.x && i maxDuration) + { + //Assigns the new max + maxDuration = currentDuration; + } + } + } + } + + return maxDuration; + } + + characters[i].info.disappearancesMaxDuration = CalculateRegionMaxDuration(disappearances); + characters[i].info.appearancesMaxDuration = CalculateRegionMaxDuration(appearances); + } + } + + void CalculateWords() + { + StringBuilder currentWord = new StringBuilder(); + wordsCount = charactersCount; + + if (words.Length < wordsCount) + Array.Resize(ref words, wordsCount); + + int tempLength = 0; + int wordIndex = 0; + int currentFirstIndex = 0; + for (int i = 0; i < charactersCount; i++) + { + if (!char.IsWhiteSpace(characters[i].info.character)) + { + characters[i].wordIndex = wordIndex; + currentWord.Append(characters[i].info.character); + tempLength++; + continue; + } + else + { + characters[i].wordIndex = -1; + } + + if (tempLength > 0) + { + words[wordIndex] = new WordInfo( + currentFirstIndex, + currentFirstIndex + tempLength - 1, + currentWord.ToString()); + currentFirstIndex += tempLength+1; //removes additional space + wordIndex++; + } + else + { + currentFirstIndex++; //proceeds to shift white spaces etc. + } + + currentWord.Clear(); + tempLength = 0; + } + + //Adds last + if (tempLength > 0) + { + words[wordIndex] = new WordInfo( + currentFirstIndex, + currentFirstIndex + tempLength - 1, + currentWord.ToString()); + wordIndex++; + } + + wordsCount = wordIndex; + } + + void HideCharacterTime(int charIndex) + { + var c = characters[charIndex]; + c.isVisible = false; + c.passedTime = 0; + c.Hide(); + characters[charIndex] = c; + } + + void HideAllCharactersTime() + { + for (int i = 0; i < charactersCount; i++) + { + HideCharacterTime(i); + } + } + + void ShowCharacterTimes() + { + for (int i = 0; i < charactersCount; i++) + { + var c = characters[i]; + c.isVisible = true; + c.passedTime = c.info.appearancesMaxDuration; + characters[i] = c; + } + } + + bool IsCharacterInsideAnyEffect(int charIndex, AnimationRegion[] regions) + { + foreach (var region in regions) + { + foreach (var range in region.ranges) + { + if (charIndex >= range.indexes.x && (range.indexes.y == int.MaxValue || charIndex < range.indexes.y)) + { + return true; + } + } + } + + return false; + } + + void AddFallbackEffectsFor(ref AnimationRegion[] currentEffects, VisibilityMode visibilityMode, Database database, string[] defaultEffectsTags) where T : AnimationScriptableBase + { + if(!database) return; + + if (defaultEffectsTags == null || defaultEffectsTags.Length == 0) + { + return; + } + + //create list of default regions that should be added + var defaultRegions = new System.Collections.Generic.List(); + string[] tagWords; + string tagName; + foreach (var tag in defaultEffectsTags) + { + if(string.IsNullOrEmpty(tag)) + { + if(Application.isPlaying) + Debug.LogError($"Empty tag as default effect in database {database.name}. Skipping.", gameObject); + continue; + } + + tagWords = tag.Split(' '); + tagName = tagWords[0]; + + if (!database.ContainsKey(tagName)) + { + if(Application.isPlaying) + Debug.LogError($"Fallback effect with tag '{tagName}' not found in database {database.name}. Skipping.", gameObject); + continue; + } + + defaultRegions.Add(new DefaultRegion(tagName, visibilityMode, database[tagName], tagWords)); + } + + //if there are no current effects, directly adds the default effects + if(currentEffects.Length == 0 || defaultTagsMode == DefaultTagsMode.Constant) + { + foreach(var element in defaultRegions) + { + element.region.OpenNewRange(0, element.tagWords); + } + } + else + { + //for every character in the text + for (int startIndex = 0; startIndex < charactersCount; startIndex++) + { + //if the character has no effect of this category assigned + if (!IsCharacterInsideAnyEffect(startIndex, currentEffects)) + { + //opens new range for default effects + foreach (var element in defaultRegions) + { + //add the default effect to the character + //TODO performance can be improved by caching modifiers + element.region.OpenNewRange(startIndex, element.tagWords); + } + + //until there are characters that are not inside this category + int endIndex = startIndex + 1; + for (; endIndex < charactersCount; endIndex++) + { + if (IsCharacterInsideAnyEffect(endIndex, currentEffects)) + { + break; + } + } + + //closes new range for default effects + foreach (var element in defaultRegions) + { + element.region.TryClosingRange(endIndex); + } + + startIndex = endIndex; + } + } + } + + //adds the default regions to the current effects + int prevCount = currentEffects.Length; + System.Array.Resize(ref currentEffects, currentEffects.Length + defaultRegions.Count); + for(int i = 0; i < defaultRegions.Count; i++) + { + currentEffects[prevCount + i] = defaultRegions[i].region; + } + } + + #endregion + + TryInitializing(); + + requiresTagRefresh = false; + _text = textToParse; + + settings = TextAnimatorSettings.Instance; + if (!settings) + { + charactersCount = 0; + Debug.LogError("Text Animator Settings not found. Skipping setting the text to Text Animator."); + return; + } + + // Uses default database from settings + if (useDefaultDatabases) + { + databaseBehaviors = settings.behaviors.defaultDatabase; + databaseAppearances = settings.appearances.defaultDatabase; + databaseActions = settings.actions.defaultDatabase; + } + + + var ruleBehavior = new AnimationParser(settings.behaviors.openingSymbol, '/', settings.behaviors.closingSymbol, VisibilityMode.Persistent, databaseBehaviors); + var ruleAppearance = new AnimationParser(settings.appearances.openingSymbol, '/', settings.appearances.closingSymbol, VisibilityMode.OnVisible, databaseAppearances); + var ruleDisappearance = new AnimationParser(settings.appearances.openingSymbol, '/', '#', settings.appearances.closingSymbol, VisibilityMode.OnHiding, databaseAppearances); + ActionParser ruleActions = new ActionParser(settings.actions.openingSymbol, '/', settings.actions.closingSymbol, databaseActions); + EventParser ruleEvents = new EventParser('<', '/', '>'); + + //TODO optimize + var parsers = new System.Collections.Generic.List() + { + ruleBehavior, + ruleAppearance, + ruleDisappearance, + ruleActions, + ruleEvents + }; + + foreach (var extraParser in GetExtraParsers()) + { + parsers.Add(extraParser); + } + + //Convert text in tags, mesh etc. + textWithoutTextAnimTags = TextParser.ParseText(_text, parsers.ToArray()); + + //Set converted text to source + SetTextToSource(textWithoutTextAnimTags); + textWithoutAnyTag = GetStrippedTextFromSource(); + charactersCount = GetCharactersCount(); + + //Assigns results + behaviors = ruleBehavior.results; + appearances = ruleAppearance.results; + disappearances = ruleDisappearance.results; + actions = ruleActions.results; + events = ruleEvents.results; + + //Adds fallback effects to characters that have no effect assigned + AddFallbackEffectsFor(ref behaviors, VisibilityMode.Persistent,databaseBehaviors, defaultBehaviorsTags); + AddFallbackEffectsFor(ref appearances, VisibilityMode.OnVisible, databaseAppearances, defaultAppearancesTags); + AddFallbackEffectsFor(ref disappearances, VisibilityMode.OnHiding, databaseAppearances, defaultDisappearancesTags); + + //Initializes only animations that are being used + foreach (var behavior in behaviors) behavior.animation.InitializeOnce(); + foreach (var appearance in appearances) appearance.animation.InitializeOnce(); + foreach (var disappearance in disappearances) disappearance.animation.InitializeOnce(); + + //Prepares Characters + PopulateCharacters(); + CopyMeshFromSource(ref characters); + CalculateWords(); + + switch(showTextMode) + { + case ShowTextMode.Hidden: + HideAllCharactersTime(); + break; + + case ShowTextMode.Shown: + ShowCharacterTimes(); + break; + + //user is typing, the latest letter has time reset + case ShowTextMode.UserTyping: + ShowCharacterTimes(); + if (charactersCount > 1) + { + HideCharacterTime(charactersCount - 1); + characters[charactersCount - 1].isVisible = true; + } + break; + + case ShowTextMode.Refresh: + //Does nothing + break; + } + + _maxVisibleCharacters = charactersCount; + + // Makes sure deltaTime is updated instantly, as user might change the timeScale on the same frame as the + // text is set (or even at Start/Awake) and typewriters might detect deltaTime of 0 and skip showing the text + time.UpdateDeltaTime(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + + if(isResettingTimeOnNewText && showTextMode != ShowTextMode.Refresh) + time.RestartTime(); + } + + /// + /// Sets the text to Text Animator, parsing its rich text tags. + /// + /// Full text that you want to paste, including rich text tags. + /// This method shows the text instantly. To control if it should be hidden instead, please see . + public void SetText(string text) => ConvertText(text, ShowTextMode.Shown); + /// + /// Sets the text to Text Animator, parsing its rich text tags. + /// + /// + /// + public void SetText(string text, bool hideText) => ConvertText(text, hideText ? ShowTextMode.Hidden : ShowTextMode.Shown); + + //TODO optimize, only add new stuff without recalculating text + /// + /// Adds text to the already existing one, parsing its rich text tags. + /// + /// New text that you want to append + /// + public void AppendText(string appendedText, bool hideText = false) + { + //Prevents appending an empty text + if (string.IsNullOrEmpty(appendedText)) + return; + + //The user is appending to an empty text + //so we set it instead + if (!hasText) + { + SetText(appendedText, hideText); + return; + } + + bool previousResettingTime = isResettingTimeOnNewText; + isResettingTimeOnNewText = false; + + int currentMax = maxVisibleCharacters; + int currentFirst = firstVisibleCharacter; + SetText(textFull + appendedText, hideText); + + //restores visibility + isResettingTimeOnNewText = previousResettingTime; + maxVisibleCharacters = currentMax; + firstVisibleCharacter = currentFirst; + for (int i = firstVisibleCharacter; i < maxVisibleCharacters; i++) + { + characters[i].isVisible = true; + characters[i].passedTime = characters[i].info.appearancesMaxDuration; + } + } + + void SetTypewriterText(string text) + { + //temp fix, opening and closing this TMPro tag (which won't be showed in the text, acting like they aren't there) because otherwise + //there isn't any way to trigger that the text has changed, if it's actually the same as the previous one. + if (text.Length <= 0) //forces clearing the mesh during the tempFix, without the tags + typewriter.ShowText(""); + else + typewriter.ShowText($"{text}"); + } + + //TODO TEST + /// + /// Sets a character visibility. + /// + /// Character's index. See and the array. + /// Controls if the character should be visible + public void SetVisibilityChar(int index, bool isVisible) + { + if(index<0 ||index>=charactersCount) return; + characters[index].isVisible = isVisible; + if (isVisible) latestCharacterShown = characters[index]; + } + + //TODO TEST + /// + /// Sets a word visibility. + /// + /// Word's index. See and the array. + /// Controls if the word should be visible + public void SetVisibilityWord(int index, bool isVisible) + { + if(index<0 || index >= wordsCount) return; + + WordInfo word = words[index]; + for (int i = Mathf.Max(word.firstCharacterIndex, 0); i <= word.lastCharacterIndex && i < charactersCount; i++) + { + SetVisibilityChar(i, isVisible); + } + } + + + //TODO Test + /// + /// Sets the visibility of the entire text, also allowing to play or skip effects. + /// + /// + /// + public void SetVisibilityEntireText(bool isVisible, bool canPlayEffects = true) + { + for (int i = 0; i < charactersCount; i++) + { + SetVisibilityChar(i, isVisible); + } + + if (!canPlayEffects) + { + if (isVisible) + { + for (int i = 0; i < charactersCount;i++) + { + characters[i].passedTime = characters[i].info.appearancesMaxDuration; + } + } + else + { + for (int i = 0; i < charactersCount;i++) + { + characters[i].passedTime = 0; + } + } + } + } + + #endregion + + #region Typing + int _firstVisibleCharacter; + /// + /// Handles the very first character allowed to be visible in the text. + /// + /// + /// Be aware that in order to visible, a character also needs to also have its own "visible" flag set to true. See and + /// + public int firstVisibleCharacter + { + get => _firstVisibleCharacter; + set => _firstVisibleCharacter = value; + } + + int _maxVisibleCharacters = 0; + /// + /// Handles the very last character allowed to be visible in the text. + /// + /// + /// Be aware that in order to visible, a character also needs to also have its own "visible" flag set to true. See and + /// + public int maxVisibleCharacters + { + get => _maxVisibleCharacters; + set + { + if (_maxVisibleCharacters == value) return; + + _maxVisibleCharacters = value; + + //clamps value + if (_maxVisibleCharacters < 0) + _maxVisibleCharacters = 0; + } + } + + + #endregion + + + #region Animation + private void Update() + { + if(!IsReady()) return; + + //--Easy Integration checks-- + if(HasChangedText(textWithoutTextAnimTags)) + { + if(typewriterStartsAutomatically && typewriter) + { + SetTypewriterText(GetOriginalTextFromSource()); + return; + } + + ConvertText(GetOriginalTextFromSource(), ShowTextMode.UserTyping); + return; + } + + //--Animates in Core Loop-- + if (animationLoop == AnimationLoop.Update) + Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + } + + void LateUpdate() + { + if (animationLoop == AnimationLoop.LateUpdate) + Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + } + + protected abstract bool IsReady(); + + /// + /// Proceeds the text animation with the given deltaTime value. + /// + /// + /// + /// You could use this if is set to and you want to control when to animate the text. + /// + public void Animate(float deltaTime) + { + if(!IsReady()) return; + + if(requiresTagRefresh) + ConvertText(_text, ShowTextMode.Refresh); + + time.UpdateDeltaTime(deltaTime); + time.IncreaseTime(); + + AnimateText(); + } + + #region Processing Regions + + bool IsCharacterAppearing(int i) => + i >= _firstVisibleCharacter && i < _maxVisibleCharacters && characters[i].isVisible; + + void ProcessAnimationRegions(AnimationRegion[] regions) + { + foreach (var region in regions) + { + foreach (var range in region.ranges) + { + region.SetupContextFor(this, range.modifiers); //TODO index instead of passing modifier by value + + for (int i = range.indexes.x; i < range.indexes.y && i < charactersCount; i++) + { + if(characters[i].passedTime<=0) continue; + if(!region.IsVisibilityPolicySatisfied(IsCharacterAppearing(i))) continue; + + if(region.animation.CanApplyEffectTo(characters[i], this)) + region.animation.ApplyEffectTo(ref characters[i], this); + } + } + } + } + + #endregion + + /// + /// Main loop + /// + void AnimateText() + { + //no text, skips + if (!hasText) return; + + TryInitializing(); //called here as well since this might be called from outside + + //Prepare characters + for(int i = 0; i < charactersCount && icharacters[i].info.disappearancesMaxDuration) + characters[i].passedTime = characters[i].info.disappearancesMaxDuration; + else + characters[i].passedTime -= time.deltaTime; + + if (characters[i].passedTime <= 0) // "<=" to force hiding characters when TimeScale = 0 + { + characters[i].passedTime = 0; + characters[i].Hide(); + } + } + } + + UpdateUniformIntensity(); + + //Processes animations + //PS Order is important + if (isAnimatingBehaviors && settings.behaviors.enabled) + { + ProcessAnimationRegions(behaviors); + } + + if (isAnimatingAppearances && settings.appearances.enabled) + { + ProcessAnimationRegions(appearances); + ProcessAnimationRegions(disappearances); + } + + //updates source + PasteMeshToSource(characters); + + //checks for changes in the setting + if (requiresMeshUpdate || HasChangedRenderingSettings()) + { + ForceMeshUpdate(); + CopyMeshFromSource(ref characters); + } + } + + #endregion + + /// + /// Schedules that a mesh refresh is required as soon as possible, which will be applied before the next animation loop starts. + /// + public void ScheduleMeshRefresh() => requiresMeshUpdate = true; + public void ForceDatabaseRefresh() + { + if(DatabaseActions) DatabaseActions.ForceBuildRefresh(); + if(DatabaseAppearances) DatabaseAppearances.ForceBuildRefresh(); + if(DatabaseBehaviors) DatabaseBehaviors.ForceBuildRefresh(); + + ConvertText(GetOriginalTextFromSource(), ShowTextMode.Refresh); + } + + /// + /// Enables or disables behavior effects animation *LOCALLY* on this Text Animator component. + /// To change this globally, see + /// + /// + public void SetBehaviorsActive(bool isCategoryEnabled) => isAnimatingBehaviors = isCategoryEnabled; + + /// + /// Enables or disables appearance effects animation *LOCALLY* on this Text Animator component. + /// To change this globally, see + /// + /// + public void SetAppearancesActive(bool isCategoryEnabled) => isAnimatingAppearances = isCategoryEnabled; + + #region Callbacks + + protected virtual void OnEnable() // things might have changed when disabled, e.g. autoSize etc. + { + requiresMeshUpdate = true; + AnimateText(); + } + #endregion + + public void ResetState() + { + _text = string.Empty; + textWithoutTextAnimTags = string.Empty; + textWithoutAnyTag = string.Empty; + charactersCount = 0; + wordsCount = 0; + initialized = false; + TryInitializing(); + } + + + + #region Obsolete + // Just for compatibility with older versions + + [Obsolete("Use TextAnimatorSettings.SetAllEffectsActive instead")] + public static void EnableAllEffects(bool enabled) => TextAnimatorSettings.SetAllEffectsActive(enabled); + + [Obsolete("Use TextAnimatorSettings.SetAppearancesActive instead")] + public static void EnableAppearances(bool enabled) => TextAnimatorSettings.SetAppearancesActive(enabled); + + [Obsolete("Use TextAnimatorSettings.SetBehaviorsActive instead")] + public static void EnableBehaviors(bool enabled) => TextAnimatorSettings.SetBehaviorsActive(enabled); + + + [Obsolete("Use SetAppearancesActive instead")] + public void EnableAppearancesLocally(bool value) => SetAppearancesActive(value); + + [Obsolete("Use SetBehaviorsActive instead")] + public void EnableBehaviorsLocally(bool value) => SetBehaviorsActive(value); + + + /// + /// Turns all characters visible at the end of the frame (i.e. "a typewriter skip") + /// + /// Set this to true if you want all letters to appear instantly (without any appearance effect) + [System.Obsolete("Use SetVisibilityEntireText instead")] + public void ShowAllCharacters(bool skipAppearanceEffects) => SetVisibilityEntireText(true, skipAppearanceEffects); + + [System.Obsolete("Use 'Animate' instead.")] + public void UpdateEffects() => Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + + [System.Obsolete("Events are not tied to TextAnimators anymore, but to their Typewriters. Please invoke 'TriggerRemainingEvents' on the Typewriter component instead.")] + public void TriggerRemainingEvents() + { + if(typewriter) typewriter.TriggerRemainingEvents(); + } + + [System.Obsolete( + "Events are not tied to TextAnimators anymore, but to their related typewriters. Please invoke 'TriggerVisibleEvents' on the Typewriter component instead.")] + public void TriggerVisibleEvents() + { + if(typewriter) typewriter.TriggerVisibleEvents(); + } + + [System.Obsolete("Use 'ScheduleMeshRefresh' instead")] + public void ForceMeshRefresh() => ScheduleMeshRefresh(); + + + [System.Obsolete("To restart TextAnimator's time, please use 'time.RestartTime()'. To skip appearances effects please set 'SetVisibilityEntireText(true, false)' instead")] + public void ResetEffectsTime(bool skipAppearances) + { + time.RestartTime(); + + if(skipAppearances) SetVisibilityEntireText(true, false); + } + + [System.Obsolete("Please use 'isResettingTimeOnNewText' instead")] + public bool isResettingEffectsOnNewText => isResettingTimeOnNewText; + + [System.Obsolete("Please use 'animationLoop' instead")] + public AnimationLoop updateMode => animationLoop; + + [System.Obsolete("Events are now handled/stored by Typewriters instead.")] + public MessageEvent onEvent => typewriter.onMessage; + + [System.Obsolete("Please use TextAnimatorSettings.Instance.appearances.enabled instead")] + public static bool effectsAppearancesEnabled => TextAnimatorSettings.Instance.appearances.enabled; + + [System.Obsolete("Please use TextAnimatorSettings.Instance.behaviors.enabled instead")] + public static bool effectsBehaviorsEnabled => TextAnimatorSettings.Instance.behaviors.enabled; + + [System.Obsolete("Please use 'textFull' instead")] + public string text => textFull; + + [System.Obsolete("Please change 'referenceFontSize' instead")] + public float effectIntensityMultiplier + { + get => referenceFontSize; + set => referenceFontSize = value; + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta new file mode 100644 index 0000000..4fbeb25 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1ef08882d835b14448c3919401c5a566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs new file mode 100644 index 0000000..8868002 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs @@ -0,0 +1,35 @@ +namespace Febucci.UI +{ + /// + /// Contains TextAnimator's current time values. + /// + [System.Serializable] + public struct TimeData + { + /// + /// Time passed since the textAnimator started showing the very first letter + /// + public float timeSinceStart { get; private set; } + + /// + /// TextAnimator's Component delta time, could be Scaled or Unscaled + /// + public float deltaTime { get; private set; } + + public void RestartTime() + { + timeSinceStart = 0; + } + + internal void IncreaseTime() => timeSinceStart += deltaTime; + + internal void UpdateDeltaTime(float deltaTime) + { + this.deltaTime = deltaTime; + + //To avoid possible desync errors etc., effects can't be played backwards. + if (deltaTime < 0) + deltaTime = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta new file mode 100644 index 0000000..a68662d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7d512b128eb34fbbbfb3d7ddd5a07900 +timeCreated: 1672434698 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs new file mode 100644 index 0000000..03867cb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs @@ -0,0 +1,11 @@ +namespace Febucci.UI +{ + /// + /// TextAnimator's effects time scale, which could match unity's Time.deltaTime or Time.unscaledDeltaTime + /// + public enum TimeScale + { + Scaled, + Unscaled, + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta new file mode 100644 index 0000000..aaa5b99 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7750818052bf43bdbdf9cf58aecedb0e +timeCreated: 1672434664 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta new file mode 100644 index 0000000..da8aff2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11c8bab48f67f694281dd60b75bd1e39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta new file mode 100644 index 0000000..df5be13 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebf5cc3c746f24542ba634e1b83b8b9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs new file mode 100644 index 0000000..4adbbf6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs @@ -0,0 +1,86 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Built-in typewriter, which shows letters dynamically character after character.
+ /// To enable it, add this component near a one
+ /// - Base class:
+ /// - Manual: TextAnimatorPlayers + ///
+ [HelpURL("https://www.febucci.com/text-animator-unity/docs/typewriters/")] + [AddComponentMenu("Febucci/TextAnimator/Typewriter - By Character")] + public class TypewriterByCharacter : Core.TypewriterCore + { + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for normal letters")] public float waitForNormalChars = .03f; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for ! ? .")] public float waitLong = .6f; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for ; : ) - ,")] public float waitMiddle = .2f; + [SerializeField, Tooltip("-True: only the last punctuaction on a sequence waits for its category time.\n-False: each punctuaction will wait, regardless if it's in a sequence or not")] public bool avoidMultiplePunctuactionWait = false; + + [SerializeField, Tooltip("True if you want the typewriter to wait for new line characters")] public bool waitForNewLines = true; + + [SerializeField, Tooltip("True if you want the typewriter to wait for all characters, false if you want to skip waiting for the last one")] public bool waitForLastCharacter = true; + + [SerializeField, Tooltip("True if you want to use the same typewriter's wait times for the disappearance progression, false if you want to use a different wait time")] public bool useTypewriterWaitForDisappearances = true; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for characters in the disappearance progression")] float disappearanceWaitTime = .015f; + [SerializeField, Attributes.MinValue(0.1f), Tooltip("How much faster/slower is the disappearance progression compared to the typewriter's typing speed")] public float disappearanceSpeedMultiplier = 1; + + protected override float GetWaitAppearanceTimeOf(int charIndex) + { + char character = TextAnimator.Characters[charIndex].info.character; + + //avoids waiting for the last character + if (!waitForLastCharacter && TextAnimator.allLettersShown) + return 0; + + //avoids waiting for multiple times if there are puntuactions near each other + if (avoidMultiplePunctuactionWait && char.IsPunctuation(character)) //curr char is punctuation + { + //next char is punctuation too, so skips this one + if (charIndex < TextAnimator.CharactersCount - 1 + && char.IsPunctuation(TextAnimator.Characters[charIndex + 1].info + .character)) + { + return waitForNormalChars; + } + } + + //avoids waiting for new lines + if (!waitForNewLines && !TextAnimator.latestCharacterShown.info.isRendered) + { + bool IsUnicodeNewLine(ulong unicode) //Returns true if the unicode value represents a new line + { + return unicode == 10 || unicode == 13; + } + + //skips waiting for a new line + if (IsUnicodeNewLine(System.Convert.ToUInt64(TextAnimator.latestCharacterShown.info.character))) + return 0; //TODO test + } + + //character is not before another punctuaction + switch (character) + { + case ';': + case ':': + case ')': + case '-': + case ',': return waitMiddle; + + case '!': + case '?': + case '.': + return waitLong; + } + + return waitForNormalChars; + + } + + protected override float GetWaitDisappearanceTimeOf(int charIndex) + { + return useTypewriterWaitForDisappearances ? GetWaitAppearanceTimeOf(charIndex) * (1/disappearanceSpeedMultiplier) : disappearanceWaitTime; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta new file mode 100644 index 0000000..5ed860d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57a6945b90dcd0c4b81619c0d8b5c283 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs new file mode 100644 index 0000000..5fc2add --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs @@ -0,0 +1,49 @@ +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI +{ + /// + /// Built-in typewriter, which shows letters dynamically word after word.
+ /// To enable it, add this component near a one
+ /// - Base class:
+ /// - Manual: TextAnimatorPlayers + ///
+ [HelpURL("https://www.febucci.com/text-animator-unity/docs/typewriters/")] + [AddComponentMenu("Febucci/TextAnimator/Typewriter - By Word")] + public class TypewriterByWord: Core.TypewriterCore + { + [SerializeField, Attributes.CharsDisplayTime] public float waitForNormalWord = 0.3f; + [FormerlySerializedAs("waitForWordWithPuntuaction")] [SerializeField, Attributes.CharsDisplayTime] public float waitForWordWithPunctuation = 0.5f; + [SerializeField, Attributes.CharsDisplayTime] public float disappearanceDelay = 0.5f; + + bool IsCharInsideAnyWord(int charIndex) + { + return TextAnimator.Characters[charIndex].wordIndex >= 0; + } + + protected override float GetWaitAppearanceTimeOf(int charIndex) + { + if (!IsCharInsideAnyWord(charIndex) && TextAnimator.latestCharacterShown.index>0) + { + int latestWordShownIndex = TextAnimator.Characters[TextAnimator.latestCharacterShown.index-1].wordIndex; + if (latestWordShownIndex >= 0 && latestWordShownIndex < TextAnimator.WordsCount) + { + var word = TextAnimator.Words[latestWordShownIndex]; + return char.IsPunctuation(TextAnimator.Characters[word.lastCharacterIndex].info.character) + ? waitForWordWithPunctuation + : waitForNormalWord; + } + + return waitForNormalWord; + } + + return 0; + } + + protected override float GetWaitDisappearanceTimeOf(int charIndex) + { + return !IsCharInsideAnyWord(charIndex) ? disappearanceDelay : 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta new file mode 100644 index 0000000..a0db774 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb821b3a89e0240aa91c53955ccade89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta new file mode 100644 index 0000000..e3cc056 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56405348257d5434abae725e56e3ff2e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs new file mode 100644 index 0000000..71529e7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs @@ -0,0 +1,7 @@ +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + [System.Serializable] + public class CharacterEvent : UnityEvent { } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta new file mode 100644 index 0000000..8287bdb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a35872b2f367498cb45631f5e243278e +timeCreated: 1679673138 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs new file mode 100644 index 0000000..e5319d8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs @@ -0,0 +1,8 @@ +using Febucci.UI.Core.Parsing; +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + [System.Serializable] + public class MessageEvent : UnityEvent { } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta new file mode 100644 index 0000000..2aa5d54 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 84fd57f550b545b2a6ad379e4d4ea3b9 +timeCreated: 1679673142 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs new file mode 100644 index 0000000..2a06771 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs @@ -0,0 +1,624 @@ +using System.Collections; +using System.Collections.Generic; +using Febucci.UI.Core.Parsing; +using UnityEngine; +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + /// + /// Base class for all Typewriters.
+ /// - Manual: Typewriters.
+ ///
+ /// + /// If you want to use the built-in Typewriter, see: or
+ ///
+ /// You can also create custom typewriters by inheriting from this class.
+ /// Manual: Writing Custom Typewriters (C#) + ///
+ [DisallowMultipleComponent] + [RequireComponent(typeof(Core.TAnimCore))] + public abstract class TypewriterCore : MonoBehaviour + { + [System.Flags] + public enum StartTypewriterMode + { + /// + /// Typewriter starts typing ONLY if you invoke "StartShowingText" from any of your script. + /// + FromScriptOnly = 0, + + /// + /// Typewriter automatically starts/resumes from the "OnEnable" method + /// + OnEnable = 1, + + /// + /// Typewriter automatically starts once you call "ShowText" method [includes Easy Integration] + /// + OnShowText = 2, + + AutomaticallyFromAllEvents = OnEnable | OnShowText //legacy support for unity 2018.x [instead of automatic recognition in 2019+] + } + + #region Variables + + #region Management Variables + + TAnimCore _textAnimator; + + /// + /// The TextAnimator Component linked to this typewriter + /// + public TAnimCore TextAnimator + { + get + { + if (_textAnimator != null) + return _textAnimator; + +#if UNITY_2019_2_OR_NEWER + if(!TryGetComponent(out _textAnimator)) + { + Debug.LogError($"TextAnimator: Text Animator component is null on GameObject {gameObject.name}. Please add a component that inherits from TAnimCore"); + } +#else + _textAnimator = GetComponent(); + Assert.IsNotNull(_textAnimator, $"Text Animator Component component is null on GameObject {gameObject.name}. Please add a component that inherits from TAnimCore"); +#endif + + return _textAnimator; + } + } + + #endregion + + #region Typewriter settings + /// + /// true if the typewriter is enabled + /// + [Tooltip("True if you want to shows the text dynamically")] + [SerializeField] public bool useTypeWriter = true; + + [SerializeField, Tooltip("Controls from which method(s) the typewriter will automatically start/resume. Default is 'Automatic'")] + public StartTypewriterMode startTypewriterMode = StartTypewriterMode.AutomaticallyFromAllEvents; + + #region Typewriter Skip + [SerializeField] + bool hideAppearancesOnSkip = false; + [SerializeField, Tooltip("True = plays all remaining events once the typewriter has been skipped")] + bool triggerEventsOnSkip = false; + #endregion + + + [SerializeField, Tooltip("True = resets the typewriter speed every time a new text is set/shown")] public bool resetTypingSpeedAtStartup = true; + + public enum DisappearanceOrientation + { + /// + /// Linear left to right (or right to left based on the text's direction) + /// + SameAsTypewriter = 0, + + /// + /// Opposite direction of the typewriter + /// + Inverted = 1, + + /// + /// Hides letters randomly from start to finish + /// + Random = 2, + } + + [SerializeField] public DisappearanceOrientation disappearanceOrientation; + + #endregion + + #endregion + + #region Events + /// + /// Called once the text is completely shown.
+ /// If the typewriter is enabled, this event is called once it has ended showing all letters. + ///
+ public UnityEvent onTextShowed = new UnityEvent(); + + /// + /// Called once the typewriter starts showing text.
+ ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public UnityEvent onTypewriterStart = new UnityEvent(); + + /// + /// Called once the typewriter has completed hiding all the letters. + /// + /// + /// It is only invoked when the typewriter is enabled. + /// + public UnityEvent onTextDisappeared = new UnityEvent(); + + /// + /// Called once a character has been shown by the typewriter.
+ ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public CharacterEvent onCharacterVisible = new CharacterEvent(); + + + /// + /// Called once an event has been shown by the typewriter.
+ /// See the Events Manual for more info. + ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public MessageEvent onMessage = new MessageEvent(); + #endregion + + #region Public Methods + + /// + /// Sets the given text to the connected TextAnimator component.
+ /// If enabled, it also starts showing letters dynamically.
+ /// - Manual: Text Animator Players + ///
+ /// + /// + /// If the typewriter is enabled but its start mode doesn't include , this method won't start showing letters. You'd have to manually call in order to start the typewriter, or include different "start modes" like and let the script manage it automatically. + /// + public void ShowText(string text) + { + // --- SETS TEXT --- + if (string.IsNullOrEmpty(text)) + { + TextAnimator.SetText(string.Empty, true); + return; + } + + TextAnimator.SetText(text, useTypeWriter); + TextAnimator.firstVisibleCharacter = 0; + + // --- TYPEWRITER --- + if (!useTypeWriter) + onTextShowed?.Invoke(); + else if (startTypewriterMode.HasFlag(StartTypewriterMode.OnShowText)) + StartShowingText(true); + } + + + /// + /// Skips the typewriter animation (if it's currently showing).
+ /// In case the text is revealing, it will show all the letters immediately.
+ /// In case the text is hiding, it will hide all the letters immediately. + ///
+ /// + /// If both revealing and hiding are occurring, hiding will prevail. + /// + public void SkipTypewriter() + { + if (isShowingText) + { + StopAllCoroutines(); + isShowingText = false; + + TextAnimator.SetVisibilityEntireText(true, !hideAppearancesOnSkip); + + if (triggerEventsOnSkip) + { + TriggerEventsUntil(int.MaxValue); + } + + onTextShowed?.Invoke(); + } + + //TODO is hiding + + } + + + #region Typewriter + + #region Appearing + + /// + /// True if the typewriter is currently showing letters + /// + public bool isShowingText { get; private set; } + + /// + /// Starts showing letters dynamically + /// + /// false if you want the typewriter to resume where it has left. true if the typewriter should restart from character 0 + public void StartShowingText(bool restart = false) + { + if(TextAnimator.CharactersCount==0) return; + + if (!useTypeWriter) + { + Debug.LogWarning("TextAnimator: couldn't start coroutine because 'useTypewriter' is disabled"); + return; + } + + if (isShowingText) + { + StopShowingText(); + } + + if (restart) + { + TextAnimator.SetVisibilityEntireText(false, false); + latestActionTriggered = 0; + latestEventTriggered = 0; + } + + if (resetTypingSpeedAtStartup) internalSpeed = 1; + isShowingText = true; + showRoutine = StartCoroutine(ShowTextRoutine()); + } + + protected abstract float GetWaitAppearanceTimeOf(int charIndex); + + Coroutine showRoutine; + Coroutine nestedActionRoutine; + + float GetDeltaTime(TypingInfo typingInfo) => TextAnimator.time.deltaTime * internalSpeed * typingInfo.speed; + IEnumerator ShowTextRoutine() + { + isShowingText = true; + + // --- INITIALIZATION --- + TypingInfo typingInfo = new TypingInfo(); + + // --- CALLBACKS --- + onTypewriterStart?.Invoke(); + + TextAnimatorSettings settings = TextAnimatorSettings.Instance; + bool actionsEnabled = settings && settings.actions.enabled; + + // --- SHOWS TEXT LETTERS --- + for(int i=0;i= deltaTime) //waits only if we "surpassed" a frame duration + { + yield return null; + //saves remaining time to next frame as already waited time + typingInfo.timePassed %= deltaTime; + } + } + else + { + //waits until enough time has passed + while (typingInfo.timePassed < timeToWait) + { + typingInfo.timePassed += deltaTime; + yield return null; + deltaTime = GetDeltaTime(typingInfo); + } + + typingInfo.timePassed %= timeToWait; //saves remaining time to next frame + } + } + + // --- FINALIZATION --- + if (actionsEnabled) + { + for (int a = latestActionTriggered; a < TextAnimator.Actions.Length && TextAnimator.Actions[a].index + /// Stops showing letters dynamically, leaving the text as it is. + /// + public void StopShowingText() + { +#if UNITY_EDITOR + if (!Application.isPlaying) //prevents from firing in edit mode from the context menu + return; +#endif + if(!isShowingText) return; + isShowingText = false; + + if(showRoutine!=null) StopCoroutine(showRoutine); + if(nestedActionRoutine!=null) StopCoroutine(nestedActionRoutine); + } + + #endregion + + #region Disappearing + + /// + /// True if the typewriter is currently disappearing the text + /// + public bool isHidingText { get; private set; } + + /// + /// Starts disappearing the text dynamically + /// + [ContextMenu("Start Disappearing Text")] + public void StartDisappearingText() + { + if (disappearanceOrientation == DisappearanceOrientation.Inverted && isShowingText) + { + Debug.LogWarning("TextAnimatorPlayer: Can't start disappearance routine in the opposite direction of the typewriter, because you're still showing the text! (the typewriter might get stuck trying to show and override letters that keep disappearing)"); + return; + } + + if(isHidingText) return; + hideRoutine = StartCoroutine(HideTextRoutine()); + } + + Coroutine hideRoutine; + Coroutine nestedHideRoutine; + /// + /// Stops the typewriter's from disappearing the text dynamically, leaving the text at its current state + /// + [ContextMenu("Stop Disappearing Text")] + public void StopDisappearingText() + { + if(!isHidingText) return; + isHidingText = false; + + if(hideRoutine!=null)StopCoroutine(hideRoutine); + if(nestedHideRoutine!=null)StopCoroutine(nestedHideRoutine); + } + + /// + /// Handles characters delay when disappearing text. + /// + /// Current character that should decide how much time to wait. Check to view its info + /// time to wait before disappearing the next character + protected virtual float GetWaitDisappearanceTimeOf(int charIndex) => GetWaitAppearanceTimeOf(charIndex); + + static int[] ShuffleArray(int[] array) + { + var rng = new System.Random(); + var n = array.Length; + while (n > 1) + { + var k = rng.Next(n--); + (array[n], array[k]) = (array[k], array[n]); + } + + return array; + } + + IEnumerator HideTextRoutine() + { + isHidingText = true; + + // --- INITIALIZATION --- + TypingInfo typingInfo = new TypingInfo(); + + // Chooses the order in which the letters will disappear + int[] indexes = new int[TextAnimator.CharactersCount]; + switch (disappearanceOrientation) + { + default: + case DisappearanceOrientation.SameAsTypewriter: //disappears from the end + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = i; + break; + case DisappearanceOrientation.Inverted: + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = TextAnimator.CharactersCount - i - 1; + break; + + case DisappearanceOrientation.Random: + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = i; + indexes = ShuffleArray(indexes); + break; + } + + // --- CALLBACKS --- + + // --- HIDES TEXT --- + for (int i = 0; i < TextAnimator.CharactersCount; i++) + { + int indexToHide = indexes[i]; + if(!TextAnimator.Characters[indexToHide].isVisible) continue; + + TextAnimator.SetVisibilityChar(indexToHide, false); + float timeToWait = GetWaitDisappearanceTimeOf(indexToHide); + + // -- WAITS TIME -- (identical to ShowTextRoutine, in order to skip frames correctly) + float deltaTime = GetDeltaTime(typingInfo); + if (timeToWait < 0) timeToWait = 0; + if (timeToWait < deltaTime) //waiting less time than a frame, we don't wait yet + { + typingInfo.timePassed += timeToWait; + if (typingInfo.timePassed >= deltaTime) //waits only if we "surpassed" a frame duration + { + yield return null; + //saves remaining time to next frame as already waited time + typingInfo.timePassed %= deltaTime; + } + } + else + { + //waits until enough time has passed + while (typingInfo.timePassed < timeToWait) + { + typingInfo.timePassed += deltaTime; + yield return null; + deltaTime = GetDeltaTime(typingInfo); + } + + typingInfo.timePassed %= timeToWait; //saves remaining time to next frame + } + } + + // --- CALLBACKS --- + onTextDisappeared?.Invoke(); + isHidingText = false; + } + + #endregion + + /// + /// Makes the typewriter slower/faster, by setting its internal speed multiplier. + /// + /// + /// + /// If the typewriter has to wait 1 second to show the next letter but you set the typewriter speed to 2, the typewriter will wait 0.5 seconds. + /// + /// + /// The minimum value is 0.001 + /// + public void SetTypewriterSpeed(float value) + { + internalSpeed = Mathf.Clamp(value, .001f, value); + } + + #endregion + + #endregion + + + #region Utilties + + float internalSpeed = 1; + + #region Actions and Events + + int latestActionTriggered = 0; + int latestEventTriggered = 0; + + void TriggerEventsBeforeAction(int maxIndex, ActionMarker action) + { + for (int i = latestEventTriggered; i < TextAnimator.Events.Length && TextAnimator.Events[i].index + /// Triggers all messages/events that have not yet been triggered, even if they're not shown in the yet. + /// + /// + /// + /// + public void TriggerRemainingEvents() => TriggerEventsUntil(int.MaxValue); + + /// + /// Triggers all messages/events that have not been triggered, but that are in the visible range of the text. + /// + /// + /// + /// + public void TriggerVisibleEvents() => TriggerEventsUntil(TextAnimator.latestCharacterShown.index); + #endregion + + #endregion + + + /// + /// Unity's default MonoBehavior 'OnEnable' callback. + /// + /// + /// P.S. If you're overriding this method, don't forget to invoke the base one. + /// + protected virtual void OnEnable() + { + if (!useTypeWriter) + return; + + if (!startTypewriterMode.HasFlag(StartTypewriterMode.OnEnable)) + return; + + StartShowingText(); + } + + /// + /// Unity's default MonoBehavior 'OnDisable' callback. + /// + /// + /// P.S. If you're overriding this method, don't forget to invoke the base one. + /// + protected virtual void OnDisable() + { + // for backwards compatibility + } + + #region Obsolete + + [System.Obsolete("Please set the speed through 'SetTypewriterSpeed' method instead")] + protected float typewriterPlayerSpeed + { + get => internalSpeed; + set => SetTypewriterSpeed(value); + } + + [System.Obsolete("Please skip the typewriter via the 'SkipTypewriter' method instead")] + protected bool wantsToSkip + { + get => throw new System.NotImplementedException(); + set + { + if(value) SkipTypewriter(); + } + } + + [System.Obsolete("Please use 'isShowingText' instead")] + protected bool isBaseInsideRoutine => isShowingText; + + + [System.Obsolete("Please use 'TextAnimator' instead")] + public TAnimCore textAnimator => TextAnimator; + + #endregion + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta new file mode 100644 index 0000000..d42cae2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac6b0a2b8ddbab342ad54b5409ccffec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs new file mode 100644 index 0000000..7634772 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs @@ -0,0 +1,18 @@ +namespace Febucci.UI.Core +{ + /// + /// A way to store information about the typing progress between coroutines, + /// also allowing to keep track of time between frames and characters/words showed + /// + public class TypingInfo + { + public float speed = 1; + public float timePassed { get; internal set; } = 0; + + public TypingInfo() + { + this.speed = 1; + this.timePassed = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta new file mode 100644 index 0000000..47f4f8d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 116f934309cb4a4fa084190dac6083f4 +timeCreated: 1679673152 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef new file mode 100644 index 0000000..928a28b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Febucci.TextAnimator.Runtime", + "rootNamespace": "", + "references": [ + "GUID:448b0b55421917e4784a8f2f7449081f" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta new file mode 100644 index 0000000..86c6ef3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e113d3b5d77bc04eab508251483e8ff +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta new file mode 100644 index 0000000..01481e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b82ca89fa6e4443c184b6c6a988ce125 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta new file mode 100644 index 0000000..4ccee7b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bae97d779d1a5423bbb8446fc2e88fc6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta new file mode 100644 index 0000000..565b724 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ba7e1fc9cc234e52bea0b6e3765e563 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs new file mode 100644 index 0000000..14345f0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs @@ -0,0 +1,11 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "ActionDatabase", menuName = "Text Animator/Actions/Create Actions Database", order = 100)] + public class ActionDatabase : Core.Database + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta new file mode 100644 index 0000000..1f2cb2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 975089f62a0f141b0b6c1e96bb49c873 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs new file mode 100644 index 0000000..9834e69 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs @@ -0,0 +1,10 @@ +namespace Febucci.UI.Core.Parsing +{ + /// + /// Contains information about an action tag in text. + /// + public sealed class ActionMarker : MarkerBase + { + public ActionMarker(string name, int index, int internalOrder, string[] parameters) : base(name, index, internalOrder, parameters) { } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta new file mode 100644 index 0000000..53655c3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 88dd2b2ee4cae41c1ab322d46fc27c51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs new file mode 100644 index 0000000..4de3d2d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs @@ -0,0 +1,62 @@ +using System.Text; +using Febucci.UI.Actions; + +namespace Febucci.UI.Core.Parsing +{ + public sealed class ActionParser : TagParserBase + { + public ActionDatabase database; + + //--- RESULTS --- + ActionMarker[] _results; + public ActionMarker[] results => _results; //TODO cache + + public ActionParser(char startSymbol, char closingSymbol, char endSymbol, ActionDatabase actionDatabase) + : base(startSymbol, closingSymbol, endSymbol) + { + this.database = actionDatabase; + } + + protected override void OnInitialize() + { + base.OnInitialize(); + _results = new ActionMarker[0]; + if(database) database.BuildOnce(); + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!database) + return false; + + database.BuildOnce(); + //gets the name of the action from the tag + //if there's an equal sign, it means there are parameters + int equalIndex = textInsideBrackets.IndexOf('='); + string actionName = equalIndex == -1 ? textInsideBrackets : textInsideBrackets.Substring(0, equalIndex); + actionName = actionName.ToLower(); //action names are case insensitive + + if (!database.ContainsKey(actionName)) return false; //skips unrecognized tags + + //Creates a new action + ActionMarker textAction; + + //If the action has parameters + if(equalIndex != -1) + { + string parameters = textInsideBrackets.Substring(equalIndex + 1); + textAction = new ActionMarker(actionName, realTextIndex, internalOrder, parameters.Replace(" ", "").Split(',')); + } + else + { + textAction = new ActionMarker(actionName, realTextIndex, internalOrder, new string[0]); + } + + //adds action to results + System.Array.Resize(ref _results, _results.Length + 1); + _results[_results.Length - 1] = textAction; + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta new file mode 100644 index 0000000..0d9e061 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4b6593795a37f4d9ea045b10d92ce442 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta new file mode 100644 index 0000000..56ce640 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4267f6f185ce4a81aa5e74e70e8696e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs new file mode 100644 index 0000000..c16c625 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs @@ -0,0 +1,10 @@ +namespace Febucci.UI.Core.Parsing +{ + /// + /// Contains information about an event called in text + /// + public class EventMarker : Parsing.MarkerBase + { + public EventMarker(string name, int index, int internalOrder, string[] parameters) : base(name, index, internalOrder, parameters) { } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta new file mode 100644 index 0000000..c03f528 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07720fa0081784ae9aa4f33c20050078 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs new file mode 100644 index 0000000..df32a26 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs @@ -0,0 +1,52 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public class EventParser : TagParserBase + { + const char eventSymbol = '?'; + + public EventParser(char openingBracket, char closingBracket, char closingTagSymbol) + : base(openingBracket, closingBracket, closingTagSymbol){ } + + EventMarker[] _results; + + public EventMarker[] results => _results; + + protected override void OnInitialize() + { + base.OnInitialize(); + _results = new EventMarker[0]; + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + //If the first character is not the event symbol, skips + if (textInsideBrackets[0] != eventSymbol) + return false; + + //Creates a new event + EventMarker textEvent; + + //If the event has parameters + int indexOfEquals = textInsideBrackets.IndexOf('='); + if(indexOfEquals != -1) + { + string eventName = textInsideBrackets.Substring(1, indexOfEquals - 1); + string parameters = textInsideBrackets.Substring(indexOfEquals + 1); + + //TODO fast strip + textEvent = new EventMarker(eventName, realTextIndex, internalOrder, parameters.Replace(" ", "").Split(',')); + } + else + { + textEvent = new EventMarker(textInsideBrackets.Substring(1), realTextIndex, internalOrder, new string[0]); + } + + System.Array.Resize(ref _results, _results.Length + 1); + _results[_results.Length - 1] = textEvent; + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta new file mode 100644 index 0000000..bf44a41 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5992208bf6566454398999726c886d89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta new file mode 100644 index 0000000..251bc72 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2971a97a3d8c14f359a2a9b5d9db390e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs new file mode 100644 index 0000000..a420b03 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs @@ -0,0 +1,47 @@ +namespace Febucci.UI.Core.Parsing +{ + public abstract class MarkerBase : System.IComparable + { + public readonly string name; + public readonly int index; + internal readonly int internalOrder; + public string[] parameters; + + public MarkerBase(string name, int index, int internalOrder, string[] parameters) + { + this.name = name; + this.index = index; + this.internalOrder = internalOrder; + this.parameters = parameters; + } + + /// + /// Checks if a marker is placed before another in text. + /// PS. Checks for internal order, since when a letter is shown (character index) + /// there might be multiple events happening + /// + /// + /// + public int CompareTo(MarkerBase other) + { + return internalOrder.CompareTo(other.internalOrder); + } + + public override string ToString() + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + sb.Append(name); + sb.Append(" internal order:"); + sb.Append(internalOrder); + sb.Append(" index:"); + sb.Append(index); + sb.Append('\n'); + for (int i = 0; i < parameters.Length; i++) + { + sb.Append(parameters[i]); + sb.Append('\n'); + } + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta new file mode 100644 index 0000000..ffcafe7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b7eebc58c32445fd9af5a1b681b2266 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta new file mode 100644 index 0000000..6b8ded0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5104e8d934da1497e8d56e84dcec2511 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta new file mode 100644 index 0000000..6c860d4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44576839baa2d4f7488e12a2f1ebbd1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs new file mode 100644 index 0000000..1d56d0a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs @@ -0,0 +1,115 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Febucci.UI.Effects; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Rules how to parse a rich text tag that has an opening and ending + /// + public class AnimationParser : TagParserBase where T : AnimationScriptableBase + { + //--- DATABASE --- + public Database database; + VisibilityMode visibilityMode; + char middleSymbol; + const char middleSymbolDefault = '\n'; //this will never be set... right? right??? + + //--- CONSTRUCTORS --- + public AnimationParser(char startSymbol, char closingSymbol, char endSymbol, VisibilityMode visibilityMode, Database database) : base(startSymbol, closingSymbol, endSymbol) + { + this.visibilityMode = visibilityMode; + this.database = database; + this.middleSymbol = middleSymbolDefault; + } + + public AnimationParser(char startSymbol, char closingSymbol, char middleSymbol, char endSymbol, VisibilityMode visibilityMode, Database database) : base(startSymbol, closingSymbol, endSymbol) + { + this.visibilityMode = visibilityMode; + this.database = database; + this.middleSymbol = middleSymbol; + } + + //--- RESULTS --- + Dictionary _results; + + public AnimationRegion[] results => _results.Values.ToArray(); //TODO cache + + protected override void OnInitialize() + { + base.OnInitialize(); + + _results = new Dictionary(); + if(database) database.BuildOnce(); + } + + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!database) return false; + + textInsideBrackets = textInsideBrackets.ToLower(); //animations are case insensitive + + //Makes sure the database is built + database.BuildOnce(); + + //If the first character is a closing symbol, then it's a closing tag + bool isClosing = textInsideBrackets[0] == closingSymbol; + //tries closing all previous regions if tag is / + if (isClosing && tagLength == 1) + { + foreach (var range in _results.Values) + { + range.CloseAllOpenedRanges(realTextIndex); + } + return true; + } + + int tagStart = isClosing ? 1 : 0; + + string fullTag = textInsideBrackets.Substring(tagStart); + string[] tempTagWords = fullTag.Split(); + string tempTagName = tempTagWords[0]; + + //invalid closing tag, since there are modifiers + if (isClosing && tempTagWords.Length > 1) + return false; + + //----CHECKS IF TAG IS RECOGNIZED---- + + //removes middle symbol if present + //so that it can also work with disappearance effects etc. + //e.g. {#shake} + //TODO tests for this + if (middleSymbol != middleSymbolDefault) + { + if(tempTagName[0] != middleSymbol) return false; + tempTagName = tempTagName.Substring(1); + } + + if (!database.ContainsKey(tempTagName)) return false; //Skips unrecognized tags + + //----ADDS RESULT---- + if (isClosing) + { + if (_results.ContainsKey(tempTagName)) + _results[tempTagName].TryClosingRange(realTextIndex); + } + else + { + //Creates new region if it doesn't exist yet + if (!_results.ContainsKey(tempTagName)) + _results.Add(tempTagName, new AnimationRegion(tempTagName, visibilityMode, database[tempTagName])); + + _results[tempTagName].OpenNewRange(realTextIndex, tempTagWords); + } + + /* + Returns true nonetheless, since even if the tag might have not been processed correctly, + it's still a Text Animator tag that shouldn't appear in the final text + */ + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta new file mode 100644 index 0000000..62ceb97 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8690f773b4aba40a9b72dad8937dd503 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs new file mode 100644 index 0000000..efd595c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs @@ -0,0 +1,122 @@ +using UnityEngine; +using System.Text; +using System; +using Febucci.UI.Effects; + +namespace Febucci.UI.Core.Parsing +{ + + [Flags] + public enum VisibilityMode + { + OnVisible = 1, + OnHiding = 2, + Persistent = OnVisible | OnHiding, + } + + /// + /// Contains information of a region in the text + /// + public class AnimationRegion : RegionBase + { + readonly VisibilityMode visibilityMode; + public readonly AnimationScriptableBase animation; + + public AnimationRegion(string tagId, VisibilityMode visibilityMode, AnimationScriptableBase animation) : base(tagId) + { + this.visibilityMode = visibilityMode; + this.animation = animation; + } + + public bool IsVisibilityPolicySatisfied(bool visible) => visibilityMode == VisibilityMode.Persistent || visibilityMode.HasFlag(VisibilityMode.OnVisible) == visible; + + #region Ranges + + + public void OpenNewRange(int startIndex) => OpenNewRange(startIndex, Array.Empty()); + + public void OpenNewRange(int startIndex, string[] tagWords) + { + Array.Resize(ref ranges, ranges.Length + 1); + TagRange range = new TagRange(new Vector2Int(startIndex, int.MaxValue)); + + //Adds modifiers + for (int i = 1; i < tagWords.Length; i++) //starts from 1 'cos skips tag name + { + string tag = tagWords[i]; + int equalIndex = tag.IndexOf('='); + if (equalIndex <= 0) continue; //invalid modifier + + if (FormatUtils.TryGetFloat(tag.Substring(equalIndex + 1), 0, out var result)) + { + Array.Resize(ref range.modifiers, range.modifiers.Length + 1); + range.modifiers[range.modifiers.Length - 1] = new ModifierInfo(tag.Substring(0, equalIndex), result); + } + } + + ranges[ranges.Length - 1] = range; + } + + //TODO testing + public void TryClosingRange(int endIndex) + { + if (ranges.Length == 0) return; //no otherTag was opened before + + for (int i = ranges.Length - 1; i >= 0; i--) + { + if (ranges[i].indexes.y != int.MaxValue) continue; // otherTag was already closed + + var range = ranges[i]; + range.indexes.y = endIndex; + ranges[i] = range; + break; //found a range to close + } + } + + public void CloseAllOpenedRanges(int endIndex) + { + if (ranges.Length == 0) return; //no otherTag was opened before + + for (int i = ranges.Length - 1; i >= 0; i--) + { + if (ranges[i].indexes.y != int.MaxValue) continue; // otherTag was already closed + + var range = ranges[i]; + range.indexes.y = endIndex; + ranges[i] = range; + } + } + #endregion + + #region Animation + + public virtual void SetupContextFor(TAnimCore animator, ModifierInfo[] modifiers) + { + animation.ResetContext(animator); + + foreach(var mod in modifiers) + animation.SetModifier(mod); + } + #endregion + + public override string ToString() + { + StringBuilder text = new StringBuilder(); + text.Append("tag: "); + text.Append(tagId); + if (ranges.Length == 0) text.Append("\nNo ranges"); + else + { + for (int i = 0; i < ranges.Length; i++) + { + text.Append('\n'); + text.Append('-'); + text.Append('-'); + text.Append(ranges[i]); + } + } + + return text.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta new file mode 100644 index 0000000..63b6916 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1ff8e127f267378409a5cb9bdf7f2c10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta new file mode 100644 index 0000000..9dcb929 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da51d4014591a4119940f9647d5b6cf6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs new file mode 100644 index 0000000..ce7105c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs @@ -0,0 +1,21 @@ +using System; + +namespace Febucci.UI +{ + public struct ModifierInfo: IEquatable + { + public string name; + public float value; + + public ModifierInfo(string name, float value) + { + this.name = name; + this.value = value; + } + + public bool Equals(ModifierInfo other) => value.Equals(other.value) && name.Equals(other.name); + + public override string ToString() => $"{name}={value}"; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta new file mode 100644 index 0000000..5340fb7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c67b17c620c357c48a6fa7c63135b03f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs new file mode 100644 index 0000000..5d49315 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using System; + +namespace Febucci.UI.Core.Parsing +{ + public abstract class RegionBase + { + public readonly string tagId; + public TagRange[] ranges; + + public RegionBase(string tagId) + { + this.tagId = tagId; + ranges = Array.Empty(); + } + + public RegionBase(string tagId, params TagRange[] ranges) + { + this.tagId = tagId; + this.ranges = ranges; + } + + public RegionBase(string tagId, params Vector2Int[] ranges) + { + this.tagId = tagId; + int len = tagId.Length + 2; //plus opening/closing symbols + this.ranges = new TagRange[ranges.Length]; + for (int i = 0; i < this.ranges.Length; i++) + this.ranges[i] = new TagRange(ranges[i]); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta new file mode 100644 index 0000000..563c429 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a3db40c7789a4b2e8f4b7c760c42d26 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs new file mode 100644 index 0000000..4b345cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public struct TagRange + { + /// + /// text index range of where to apply the tag + /// + public Vector2Int indexes; + public ModifierInfo[] modifiers; + + public TagRange(Vector2Int indexes, params ModifierInfo[] modifiers) + { + this.indexes = indexes; + this.modifiers = modifiers; + } + + public override string ToString() + { + StringBuilder text = new StringBuilder(); + + text.Append("indexes: "); + text.Append(indexes); + if (modifiers == null || modifiers.Length == 0) + text.Append("\n no modifiers"); + else + { + for (int i = 0; i < modifiers.Length; i++) + { + text.Append('\n'); + text.Append('-'); + text.Append(modifiers[i]); + } + } + return text.ToString(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta new file mode 100644 index 0000000..9e712ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc9fe708cb635ad47bc864d6a4949899 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs new file mode 100644 index 0000000..6d19bc2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs @@ -0,0 +1,119 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Handles text parsing and rich text tags recognition + /// + public static class TextParser + { + public static string ParseText(string text, params TagParserBase[] rules) + { + if(rules == null || rules.Length == 0) + { + UnityEngine.Debug.LogWarning("No rules were provided to parse the text. Skipping"); + return text; + } + + //PS At the moment, only for avoiding fails on domain reload + //and multiple tags on different text sets + foreach (var rule in rules) + { + rule.Initialize(); + } + + /* + P.S. Calculating tags etc. is done inside this single method (and not split for each rule etc.) + so that the text is only parsed once, and not multiple times for each rule - improving performance + */ + StringBuilder result = new StringBuilder(); + + // create an array of character from text + var characters = text.ToCharArray(); + int len = characters.Length; + bool foundTag; + string fullTag; + bool allowParsing = true; + + //For every character in text + for(int textIndex = 0, realTextIndex = 0; textIndex < len; textIndex++) + { + foundTag = false; + + //searches for noparse first + if (characters[textIndex] == '<') + { + int closeIndex = text.IndexOf('>', textIndex + 1); + if(closeIndex>0) + { + int tagLength = closeIndex - textIndex + 1; + void PasteTagToText() + { + foundTag = true; + result.Append(fullTag); + textIndex = closeIndex; + } + + fullTag = text.Substring(textIndex, tagLength); + switch (fullTag.ToLower()) + { + case "": + allowParsing = false; + PasteTagToText(); + break; + case "": + allowParsing = true; + PasteTagToText(); + break; + } + } + } + + if (allowParsing && !foundTag) + { + foreach (var rule in rules) //tries rich tags + { + if (characters[textIndex] == rule.startSymbol) + { + for (int endIndex = textIndex + 1; endIndex < len && !foundTag; endIndex++) + { + //If there's an opening symbol, skips since it's a new tag + if (characters[endIndex] == rule.startSymbol) + break; + + if (characters[endIndex] == rule.endSymbol) + { + // Gets the length of the tag + int tagLength = endIndex - textIndex - 1; + + if (tagLength == 0) //Skips empty tag + break; + + if (rule.TryProcessingTag( + text.Substring(textIndex + 1, tagLength), + tagLength, + ref realTextIndex, + result, + textIndex)) + { + foundTag = true; + textIndex = endIndex; //Tag processed, skips others + break; + } + } + } + } + } + } + + if (!foundTag) + { + result.Append(characters[textIndex]); + realTextIndex++; + } + } + + return result.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta new file mode 100644 index 0000000..3bc89db --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62b50d2f8435a44d5abcc3b0aec4daed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta new file mode 100644 index 0000000..f89e84d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e43be599da104e6bba973f670eecf31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs new file mode 100644 index 0000000..69e61b6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs @@ -0,0 +1,14 @@ +namespace Febucci.UI.Core +{ + public struct CharInfo + { + internal bool initialized; + public float disappearancesMaxDuration; + public float appearancesMaxDuration; + + public float pointSize; + + public char character; //TODO test + public bool isRendered; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta new file mode 100644 index 0000000..25488ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7317a03cd5fb4135ba38336b9ed9fd1c +timeCreated: 1672437590 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs new file mode 100644 index 0000000..6ac4250 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs @@ -0,0 +1,60 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + public struct CharacterData + { + public CharInfo info; + + public int index; + public int wordIndex; + public bool isVisible; + public float passedTime; + + public float uniformIntensity; + + public MeshData source; + public MeshData current; + + public void ResetInfo(int i) + { + + index = i; + wordIndex = -1; + isVisible = true; //text is visible by default + + //--Initializes first time only-- + if (!info.initialized) + { + source.positions = new Vector3[Core.TextUtilities.verticesPerChar]; + source.colors = new Color32[Core.TextUtilities.verticesPerChar]; + + current.positions = new Vector3[Core.TextUtilities.verticesPerChar]; + current.colors = new Color32[Core.TextUtilities.verticesPerChar]; + } + + } + + public void ResetAnimation() + { + for (int i = 0; i < source.positions.Length; i++) + { + current.positions[i] = source.positions[i]; + current.colors[i] = source.colors[i]; + } + } + + public void Hide() + { + for (byte i = 0; i < source.positions.Length; i++) + { + current.positions[i] = Vector3.zero; + } + } + + public void UpdateIntensity(float referenceFontSize) + { + uniformIntensity = info.pointSize / referenceFontSize; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta new file mode 100644 index 0000000..77b342e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36a40ff9978cfb0458b260b57a2e84f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs new file mode 100644 index 0000000..1e75a06 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs @@ -0,0 +1,119 @@ +using System.Collections.Generic; + +namespace Febucci.UI.Core +{ + /// + /// Caches information about tag providers, so that + /// it's easier to access them + /// + /// + [System.Serializable] + public class Database : UnityEngine.ScriptableObject where T : UnityEngine.ScriptableObject, ITagProvider + { + bool built; + + void OnEnable() + { + //Prevents database from not refreshing on + //different domain reload settings + built = false; + } + + [UnityEngine.SerializeField] System.Collections.Generic.List data = new List(); + public System.Collections.Generic.List Data => data; + + public void Add(T element) + { + if(data == null) data = new System.Collections.Generic.List(); + data.Add(element); + + // at runtime adds directly on database as well, without needing to rebuild + if (built && UnityEngine.Application.isPlaying) + { + string tag = element.TagID; + if (dictionary.ContainsKey(tag)) + UnityEngine.Debug.LogError($"Text Animator: Tag {tag} is already present in the database. Skipping..."); + else + dictionary.Add(tag, element); + } + else + { + built = false; + } + } + + Dictionary dictionary; + + public void ForceBuildRefresh() + { + built = false; + BuildOnce(); + } + + public void BuildOnce() + { + if(built) return; + built = true; + + if(dictionary == null) + dictionary = new Dictionary(); + else + dictionary.Clear(); + + string tagId; + foreach (var source in data) + { + if(!source) + continue; + + tagId = source.TagID; + + if (string.IsNullOrEmpty(tagId)) + { + UnityEngine.Debug.LogError($"Text Animator: Tag is null or empty. Skipping..."); + continue; + } + + if (dictionary.ContainsKey(tagId)) + { + UnityEngine.Debug.LogError($"Text Animator: Tag {tagId} is already present in the database. Skipping..."); + continue; + } + + dictionary.Add(tagId, source); + } + + OnBuildOnce(); + } + + protected virtual void OnBuildOnce() { } + + public bool ContainsKey(string key) + { + BuildOnce(); + return dictionary.ContainsKey(key); + } + + public T this[string key] + { + get + { + BuildOnce(); + return dictionary[key]; + } + } + + public void DestroyImmediate(bool databaseOnly = false) + { + if (!databaseOnly) + { + foreach (var element in data) + { + UnityEngine.Object.DestroyImmediate(element); + } + } + + UnityEngine.Object.DestroyImmediate(this); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta new file mode 100644 index 0000000..b57ae08 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad15696ec142b4b74a18062348e0c8ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs new file mode 100644 index 0000000..c9ca084 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs @@ -0,0 +1,7 @@ +namespace Febucci.UI.Core +{ + public interface ITagProvider + { + string TagID { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta new file mode 100644 index 0000000..7d711d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95954e1bd9a8247e485caea208576867 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs new file mode 100644 index 0000000..7f45f07 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + public struct MeshData : System.IEquatable + { + public Vector3[] positions; + public Color32[] colors; + + + public bool Equals(MeshData other) + { + //checks every position with other's position + for (int i = 0; i < positions.Length; i++) + { + if (positions[i] != other.positions[i]) + return false; + } + + //checks every color with other's color + for (int i = 0; i < colors.Length; i++) + { + if (!colors[i].Equals(other.colors[i])) + return false; + } + + return true; + } + + public override string ToString() + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + //prints positions and colors + for (int i = 0; i < positions.Length; i++) + { + sb.Append(positions[i].ToString()); + sb.Append(" "); + sb.Append(colors[i].ToString()); + sb.Append(" - "); + } + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta new file mode 100644 index 0000000..78581ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 36780d2b32e74616a2d854f1c8c2c242 +timeCreated: 1672437581 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs new file mode 100644 index 0000000..ee5d394 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs @@ -0,0 +1,29 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Base class to parse/process a rich text tag + /// + public abstract class TagParserBase + { + //--- SYMBOLS --- + public char startSymbol; + public char endSymbol; + public char closingSymbol; //TODO remove closing symbol to all, add it only to regions + + public TagParserBase() { } + public TagParserBase(char startSymbol, char closingSymbol, char endSymbol) + { + this.startSymbol = startSymbol; + this.closingSymbol = closingSymbol; + this.endSymbol = endSymbol; + } + + //--- METHODS --- + public abstract bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder); + + public void Initialize() => OnInitialize(); + protected virtual void OnInitialize(){ } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta new file mode 100644 index 0000000..eddf9ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 55c7a4ae649c8407f8d95bf3403945ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs new file mode 100644 index 0000000..1decfd5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs @@ -0,0 +1,16 @@ +namespace Febucci.UI.Core +{ + public struct WordInfo + { + public readonly int firstCharacterIndex; + public readonly int lastCharacterIndex; + public readonly string text; + + public WordInfo(int firstCharacterIndex, int lastCharacterIndex, string text) + { + this.firstCharacterIndex = firstCharacterIndex; + this.lastCharacterIndex = lastCharacterIndex; + this.text = text; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta new file mode 100644 index 0000000..bfc3eec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ada8bd43a5c046838f7be64d1e3f7e3d +timeCreated: 1679507564 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta new file mode 100644 index 0000000..5b32420 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c62ca3b12006dd046abe6a66e7f5c690 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta new file mode 100644 index 0000000..7239506 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35d5f4998a2cc4d709e95a90ff304e6e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta new file mode 100644 index 0000000..92e515d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0af2dade929034a0ead991e371617b6c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs new file mode 100644 index 0000000..7dfbfcf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "Speed Action", menuName = "Text Animator/Actions/Speed", order = 1)] + [TagInfo("speed")] + public sealed class SpeedAction : ActionScriptableBase + { + /// + /// Speed used in case the action does not have the first parameter + /// + [UnityEngine.Tooltip("Speed used in case the action does not have the first parameter")] + public float defaultSpeed = 2; + + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + float speed = defaultSpeed; + if(action.parameters.Length > 0) + { + FormatUtils.TryGetFloat(action.parameters[0], defaultSpeed, out speed); + } + + typingInfo.speed = speed; + yield break; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta new file mode 100644 index 0000000..6b544ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 24451f867ad2a6146baf57f938a44d18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs new file mode 100644 index 0000000..3c6b330 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs @@ -0,0 +1,18 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using UnityEngine; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [CreateAssetMenu(fileName = "WaitAnyInput Action", menuName = "Text Animator/Actions/Wait Any Input", order = 1)] + [TagInfo("waitinput")] + public sealed class WaitAnyInputAction : ActionScriptableBase + { + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + while(!Input.anyKeyDown) + yield return null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta new file mode 100644 index 0000000..d4e1adb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aed6905e7c644c14a804ef32a5216aa3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs new file mode 100644 index 0000000..194c23a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs @@ -0,0 +1,33 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "WaitFor Action", menuName = "Text Animator/Actions/Wait For", order = 1)] + [TagInfo("waitfor")] + public sealed class WaitForAction : ActionScriptableBase + { + /// + /// Time used in case the action does not have the first parameter + /// + [UnityEngine.Tooltip("Time used in case the action does not have the first parameter")] + public float defaultTime = 1; + + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + float targetTime = defaultTime; + if(action.parameters.Length > 0) + { + FormatUtils.TryGetFloat(action.parameters[0], defaultTime, out targetTime); + } + + float t = 0; + while(t<=targetTime) + { + t += typewriter.TextAnimator.time.deltaTime; + yield return null; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta new file mode 100644 index 0000000..65a8542 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7806fdd5903ae4a1b8ddb77cde0d5832 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta new file mode 100644 index 0000000..b093b3b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c3dbde1f78df466e95f8020923a8696 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs new file mode 100644 index 0000000..6298304 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs @@ -0,0 +1,18 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + public abstract class ActionScriptableBase : UnityEngine.ScriptableObject, ITagProvider + { + [UnityEngine.SerializeField] string tagID; + public string TagID + { + get => tagID; + set => tagID = value; + } + + public abstract System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta new file mode 100644 index 0000000..7906dec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b39050096895d4d758c32f76c7391954 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta new file mode 100644 index 0000000..3bf910c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 452cdf0b0bd2b53428c1a3398784e999 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta new file mode 100644 index 0000000..3b25923 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7351ce21b48094cd69f7fbc6531652bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta new file mode 100644 index 0000000..bb33e4e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a9665765cbb54293a006234c8f34c0d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs new file mode 100644 index 0000000..b05b2e4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs @@ -0,0 +1,65 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Diagonal Expand Appearance", menuName = "Text Animator/Animations/Appearances/Diagonal Expand")] + [EffectInfo("diagexp", EffectCategory.Appearances)] + public sealed class DiagonalExpandAppearance : AppearanceScriptableBase + { + public bool diagonalFromBttmLeft; + + int targetA; + int targetB; + + //--Temp variables-- + Vector3 middlePos; + float pct; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + diagonalFromBttmLeft = true; + UpdateOrientation(); + } + + void UpdateOrientation() + { + if (diagonalFromBttmLeft) //expands bottom left and top right + { + targetA = 0; + targetB = 2; + } + else //expands bottom right and top left + { + targetA = 1; + targetB = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + middlePos = character.current.positions.GetMiddlePos(); + pct = Tween.EaseInOut(character.passedTime / duration); + + character.current.positions[targetA] = Vector3.LerpUnclamped(middlePos, character.current.positions[targetA], pct); + //top right copies from bottom right + character.current.positions[targetB] = Vector3.LerpUnclamped(middlePos, character.current.positions[targetB], pct); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "bot": + diagonalFromBttmLeft = (int)modifier.value == 1; + UpdateOrientation(); + break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta new file mode 100644 index 0000000..c1ce5fa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7303246fad8e2a049aebd6c0c71d2985 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs new file mode 100644 index 0000000..33af797 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Fade Appearance", menuName = "Text Animator/Animations/Appearances/Fade")] + [EffectInfo("fade", EffectCategory.Appearances)] + public sealed class FadeAppearance : AppearanceScriptableBase + { + Color32 temp; + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + //from transparent to real color + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], temp, + Tween.EaseInOut(1 - (character.passedTime / duration))); + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta new file mode 100644 index 0000000..c0c700c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d26528e73e36f64dab95b69625232a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs new file mode 100644 index 0000000..5afc6b4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs @@ -0,0 +1,99 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Horizontal Expand Appearance", menuName = "Text Animator/Animations/Appearances/Horizontal Expand")] + [EffectInfo("horiexp", EffectCategory.Appearances)] + public sealed class HorizontalExpandAppearance : AppearanceScriptableBase + { + //expand type + public enum ExpType + { + Left, //from left to right + Middle, //expands from the middle to te extents + Right //from right to left + } + + + public ExpType type = ExpType.Left; + + //--Temp variables-- + Vector2 startTop; + Vector2 startBot; + float pct; + + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + type = ExpType.Left; + } + + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + pct = Tween.EaseInOut(character.passedTime / duration); + + switch (type) + { + default: + case ExpType.Left: + //top left and bot left + startTop = character.current.positions[1]; + startBot = character.current.positions[0]; + + character.current.positions[2] = Vector3.LerpUnclamped(startTop, character.current.positions[2], pct); + character.current.positions[3] = Vector3.LerpUnclamped(startBot, character.current.positions[3], pct); + break; + + case ExpType.Right: + //top right and bot right + startTop = character.current.positions[2]; + startBot = character.current.positions[3]; + + character.current.positions[1] = Vector3.LerpUnclamped(startTop, character.current.positions[1], pct); + character.current.positions[0] = Vector3.LerpUnclamped(startBot, character.current.positions[0], pct); + break; + + case ExpType.Middle: + //Middle positions + startTop = (character.current.positions[1] + character.current.positions[2]) / 2; + startBot = (character.current.positions[0] + character.current.positions[3]) / 2; + + //top vertices + character.current.positions[1] = Vector3.LerpUnclamped(startTop, character.current.positions[1], pct); + character.current.positions[2] = Vector3.LerpUnclamped(startTop, character.current.positions[2], pct); + + //bottom vertices + character.current.positions[0] = Vector3.LerpUnclamped(startBot, character.current.positions[0], pct); + character.current.positions[3] = Vector3.LerpUnclamped(startBot, character.current.positions[3], pct); + + break; + } + + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "x": + switch (modifier.value) + { + case -1: type = ExpType.Left; break; + case 0: type = ExpType.Middle; break; + case 1: type = ExpType.Right; break; + default: Debug.LogError($"Text Animator: you set an '{modifier.name}' modifier with value '{modifier.value}' for the HorizontalExpandAppearance effect, but it can only be '-1', '0', or '1'"); break; + } + break; + default: + base.SetModifier(modifier); + break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta new file mode 100644 index 0000000..050a7d5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dbde6098d9bea441b3ac872e52073ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs new file mode 100644 index 0000000..44b8179 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs @@ -0,0 +1,37 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Offset Appearance", menuName = "Text Animator/Animations/Appearances/Offset")] + [EffectInfo("offset", EffectCategory.Appearances)] + public sealed class OffsetAppearance : AppearanceScriptableBase + { + public float baseAmount = 10; + float amount; + public Vector2 baseDirection = Vector2.one; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amount = baseAmount; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar(baseDirection * amount * character.uniformIntensity * Tween.EaseIn(1 - character.passedTime / duration)); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amount = baseAmount * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta new file mode 100644 index 0000000..7d729cb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 146552007a93ecc42b0d63f26788e6cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs new file mode 100644 index 0000000..8aa8b48 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs @@ -0,0 +1,58 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "RandomDir Appearance", menuName = "Text Animator/Animations/Appearances/Random Direction")] + [EffectInfo("rdir", EffectCategory.Appearances)] + public sealed class RandomDirectionAppearance : AppearanceScriptableBase + { + public float baseAmount = 10; + float amount; + Vector3[] directions; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amount = baseAmount; + } + + protected override void OnInitialize() + { + base.OnInitialize(); + + directions = new Vector3[20]; + + //Calculates a random direction for each character (which won't change) + for(int i = 0; i < directions.Length; i++) + { + directions[i] = TextUtilities.fakeRandoms[Random.Range(0, TextUtilities.fakeRandomsCount - 1)] * Mathf.Sign(Mathf.Sin(i)); + } + } + + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + int index = character.index % directions.Length; + + //Moves all towards a direction + character.current.positions.MoveChar( + directions[index] + * amount + * character.uniformIntensity + * Tween.EaseIn(1 - character.passedTime / duration)); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amount = baseAmount * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta new file mode 100644 index 0000000..621750e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a65a9b7775dded41a0295e6f75be25d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs new file mode 100644 index 0000000..6afda92 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs @@ -0,0 +1,43 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Rotating Appearance", menuName = "Text Animator/Animations/Appearances/Rotating")] + [EffectInfo("rot", EffectCategory.Appearances)] + [DefaultValue(nameof(baseDuration), .7f)] + public sealed class RotatingAppearance : AppearanceScriptableBase + { + public float baseTargetAngle = 50; + float targetAngle; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + targetAngle = baseTargetAngle; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar( + Mathf.Lerp( + targetAngle, + 0, + Tween.EaseInOut(character.passedTime / duration) + ) + ); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": targetAngle = baseTargetAngle * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta new file mode 100644 index 0000000..e291d19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 465a2951870a6954d8205f9c58a546de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs new file mode 100644 index 0000000..193c4ea --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs @@ -0,0 +1,37 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Size Appearance", menuName = "Text Animator/Animations/Appearances/Size")] + [EffectInfo("size", EffectCategory.Appearances)] + public sealed class SizeAppearance : AppearanceScriptableBase + { + float amplitude; + public float baseAmplitude = 2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amplitude = baseAmplitude * -1 + 1; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.LerpUnclamped( + character.current.positions.GetMiddlePos(), + Tween.EaseIn(1 - (character.passedTime / duration)) * amplitude + ); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta new file mode 100644 index 0000000..1c7a00e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ff5882c38f1b6c4682c7f207f0c98db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs new file mode 100644 index 0000000..b4b7649 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs @@ -0,0 +1,69 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Vertical Expand Appearance", menuName = "Text Animator/Animations/Appearances/Vertical Expand")] + [EffectInfo("vertexp", EffectCategory.Appearances)] + public sealed class VerticalExpandAppearance : AppearanceScriptableBase + { + public bool startsFromBottom = true; + int startA, targetA; + int startB, targetB; + + //--Temp variables-- + float pct; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + SetOrientation(startsFromBottom); + } + + void SetOrientation(bool fromBottom) + { + if (fromBottom) //From bottom to top + { + + //top left copies bottom left + startA = 0; + targetA = 1; + + //top right copies bottom right + startB = 3; + targetB = 2; + } + else //from top to bottom + { + + //bottom left copies top left + startA = 1; + targetA = 0; + + //bottom right copies top right + startB = 2; + targetB = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + pct = Tween.EaseInOut(character.passedTime / duration); + + character.current.positions[targetA] = Vector3.LerpUnclamped(character.current.positions[startA], character.current.positions[targetA], pct); + character.current.positions[targetB] = Vector3.LerpUnclamped(character.current.positions[startB], character.current.positions[targetB], pct); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "bot": SetOrientation((int)modifier.value == 1); break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta new file mode 100644 index 0000000..7bb2dd7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 351d9d9e5c9ea7946842aee1160f7731 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta new file mode 100644 index 0000000..5d1b0bc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9164d28933c0b4352b5b48dcbb7c8240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs new file mode 100644 index 0000000..2139179 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs @@ -0,0 +1,31 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + [System.Serializable] + public abstract class AppearanceScriptableBase : AnimationScriptableBase + { + public float baseDuration = .5f; + protected float duration; + + public override void ResetContext(TAnimCore animator) + { + duration = baseDuration; + } + + public override float GetMaxDuration() => duration; //TODO improve this, a bit hacky + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "d": duration = baseDuration * modifier.value; break; + } + } + + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => character.passedTime <= duration; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta new file mode 100644 index 0000000..6b565e8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb71b61f2fec745acaf81b5bf98f19f2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta new file mode 100644 index 0000000..459a67a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ca263a61b56e4699ac2efe4d837032e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta new file mode 100644 index 0000000..bc6ef19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 58afd08ab8fee49849a0174b6e5bb64b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs new file mode 100644 index 0000000..d4bcffb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs @@ -0,0 +1,41 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Bounce", menuName = "Text Animator/Animations/Behaviors/Bounce")] + [EffectInfo("bounce", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 13.19f)] + [DefaultValue(nameof(baseFrequency), 1f)] + [DefaultValue(nameof(baseWaveSize), .2f)] + public sealed class BounceBehavior : BehaviorScriptableSine + { + //Calculates the tween percentage + float BounceTween(float t) + { + const float stillTime = .2f; + const float easeIn = .2f; + const float bounce = 1 - stillTime - easeIn; + + if (t <= easeIn) + return Tween.EaseInOut(t / easeIn); + t -= easeIn; + + if (t <= bounce) + return 1 - Tween.BounceOut(t / bounce); + + return 0; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar( + Vector3.up * character.uniformIntensity * + BounceTween((Mathf.Repeat(animator.time.timeSinceStart * frequency - waveSize * character.index, 1))) * amplitude + ); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta new file mode 100644 index 0000000..89042cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a333962955c4a08498d132d86d9ce19e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs new file mode 100644 index 0000000..e986d2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs @@ -0,0 +1,47 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Dangle", fileName = "Dangle Behavior")] + [EffectInfo("dangle", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 7.87f)] + [DefaultValue(nameof(baseFrequency), 3.37f)] + [DefaultValue(nameof(baseWaveSize), .306f)] + public sealed class DangleBehavior : BehaviorScriptableSine + { + public bool anchorBottom; + float sin; + + int targetIndex1; + int targetIndex2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + + //bottom + if (anchorBottom) + { + targetIndex1 = 1; + targetIndex2 = 2; + } + else + { + targetIndex1 = 0; + targetIndex2 = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + + sin = Mathf.Sin(frequency * animator.time.timeSinceStart + character.index * waveSize) * amplitude * character.uniformIntensity; + + //moves one side (top or bottom) torwards one direction + character.current.positions[targetIndex1] += Vector3.right * sin; + character.current.positions[targetIndex2] += Vector3.right * sin; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta new file mode 100644 index 0000000..ee4a202 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01a91f0b9c670b242ae5c34286409cd9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs new file mode 100644 index 0000000..133bb73 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs @@ -0,0 +1,69 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Fade Behavior", menuName = "Text Animator/Animations/Behaviors/Fade")] + [EffectInfo("fade", EffectCategory.Behaviors)] + public sealed class FadeBehavior : BehaviorScriptableBase + { + Color32 temp; + public float baseSpeed = .5f; + public float baseDelay = 1f; + float delay; + float timeToShow; + + public override void ResetContext(TAnimCore animator) + { + delay = baseDelay; + SetTimeToShow(baseSpeed); + } + + //given speed (per second), sets the time needed to show + void SetTimeToShow(float speed) => timeToShow = 1 / speed; //TODO check for zero + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": + SetTimeToShow(baseSpeed * modifier.value); + break; + case "d": delay = baseDelay * modifier.value; break; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + if (character.passedTime <= delay) //not passed enough time yet + return; + + float charPct = (character.passedTime - delay) / timeToShow; + + if (charPct > 1) charPct = 1; + + //Lerps + if (charPct < 1 && charPct >= 0) + { + for (var i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], temp, Tween.EaseInOut(charPct)); + } + } + else //Keeps them hidden + { + for (var i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = temp; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta new file mode 100644 index 0000000..00dbe14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1f1dde3a46b6e748885a8d202c32044 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs new file mode 100644 index 0000000..dde29c4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs @@ -0,0 +1,46 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Pendulum Behavior", menuName = "Text Animator/Animations/Behaviors/Pendulum")] + [EffectInfo("pend", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 24.7f)] + [DefaultValue(nameof(baseFrequency), 3.1f)] + [DefaultValue(nameof(baseWaveSize), .2f)] + public sealed class PendulumBehavior : BehaviorScriptableSine + { + public bool anchorBottom; + + int targetVertex1; + int targetVertex2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + + if (anchorBottom) + { + //anchored at the bottom + targetVertex1 = 0; + targetVertex2 = 3; + } + else + { + //anchored at the top + targetVertex1 = 1; + targetVertex2 = 2; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar( + Mathf.Sin(-animator.time.timeSinceStart * frequency + waveSize * character.index) * amplitude, + (character.current.positions[targetVertex1] + character.current.positions[targetVertex2]) / 2 //bottom center as their rotation pivot + ); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta new file mode 100644 index 0000000..b83f707 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5005fc4984831834d826c8a9e3d42443 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs new file mode 100644 index 0000000..93ab11b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs @@ -0,0 +1,46 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Rainbow", fileName = "Rainbow Behavior")] + [EffectInfo("rainb", EffectCategory.Behaviors)] + public sealed class RainbowBehavior : BehaviorScriptableBase + { + public float baseFrequency = 0.5f; + public float baseWaveSize = 0.08f; + + + float frequency; + float waveSize; + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + //frequency + case "f": frequency = baseFrequency * modifier.value; break; + //wave size + case "s": waveSize = baseWaveSize * modifier.value; break; + } + } + + public override void ResetContext(TAnimCore animator) + { + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + Color32 temp; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + //shifts hue + temp = Color.HSVToRGB(Mathf.PingPong(animator.time.timeSinceStart * frequency + character.index * waveSize, 1), 1, 1); + temp.a = character.current.colors[i].a; //preserves original alpha + character.current.colors[i] = temp; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta new file mode 100644 index 0000000..f53d337 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5400420051c0a9341be4aece65080148 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs new file mode 100644 index 0000000..321eaf8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Rotation", fileName = "Rotation Behavior")] + [EffectInfo("rot", EffectCategory.Behaviors)] + public sealed class RotationBehavior : BehaviorScriptableBase + { + + public float baseRotSpeed = 180; + public float baseDiffBetweenChars = 10; + + float angleSpeed; + float angleDiffBetweenChars; + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + //frequency + case "f": angleSpeed = baseRotSpeed * modifier.value; break; + //angle diff + case "w": angleDiffBetweenChars = baseDiffBetweenChars * modifier.value; break; + } + } + + public override void ResetContext(TAnimCore animator) + { + angleSpeed = baseRotSpeed; + angleDiffBetweenChars = baseDiffBetweenChars; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar(-animator.time.timeSinceStart * angleSpeed + + angleDiffBetweenChars * character.index); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta new file mode 100644 index 0000000..450c69d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c179eec3e2795104eb216e340b8d8513 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs new file mode 100644 index 0000000..d9e9b47 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs @@ -0,0 +1,79 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Shake", fileName = "Shake Behavior")] + [EffectInfo("shake", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 1.13f)] + [DefaultValue(nameof(baseDelay), .1f)] + [DefaultValue(nameof(baseWaveSize), .45f)] + public sealed class ShakeBehavior : BehaviorScriptableBase + { + //---BASE VALUES--- + public float baseAmplitude = .085f; + public float baseDelay = .04f; + public float baseWaveSize = .2f; + + float amplitude; + float delay; + float waveSize; + + //--- ANIMATION --- + + void ClampValues() + { + delay = Mathf.Clamp(delay, 0.002f, 500); + } + + protected override void OnInitialize() + { + base.OnInitialize(); + + randIndex = Random.Range(0, TextUtilities.fakeRandomsCount); + } + + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude; + delay = baseDelay; + waveSize = baseWaveSize; + + ClampValues(); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + case "d": delay = baseDelay * modifier.value; break; + case "w": waveSize = baseWaveSize * modifier.value; break; + } + + ClampValues(); + } + + int randIndex; + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = animator.time.timeSinceStart; + timePassed += character.index * waveSize; + + randIndex = Mathf.RoundToInt(timePassed / delay) % (TextUtilities.fakeRandomsCount); + if(randIndex<0) randIndex *= -1; //always positive + + character.current.positions.MoveChar + ( + TextUtilities.fakeRandoms[randIndex] * amplitude * character.uniformIntensity + ); + } + + void OnValidate() + { + ClampValues(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta new file mode 100644 index 0000000..edb2527 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 144066a43449f48469b89b2e2c9ab37d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs new file mode 100644 index 0000000..39e3e33 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Size", fileName = "Size Behavior")] + [EffectInfo("incr", EffectCategory.Behaviors)] + public sealed class SizeBehavior : BehaviorScriptableBase + { + public float baseAmplitude = 1.5f; + public float baseFrequency = 4; + public float baseWaveSize = 0.2f; + + float amplitude; + float frequency; + float waveSize; + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude * -1 + 1; + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch(modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value * -1 + 1; break; + case "f": frequency = baseFrequency * modifier.value; break; + case "w": waveSize = baseWaveSize * modifier.value; break; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.LerpUnclamped( + character.current.positions.GetMiddlePos(), + (Mathf.Cos(animator.time.timeSinceStart* frequency + character.index * waveSize) + 1) / 2f * amplitude); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta new file mode 100644 index 0000000..31ae479 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6da0c21b80efda84188912ce510ee1ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs new file mode 100644 index 0000000..76cc4ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Slide Behavior", menuName = "Text Animator/Animations/Behaviors/Slide")] + [EffectInfo("slide", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 5)] + [DefaultValue(nameof(baseFrequency), 3)] + [DefaultValue(nameof(baseWaveSize), 0)] + public sealed class SlideBehavior : BehaviorScriptableSine + { + float sin; + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + sin = Mathf.Sin(frequency * animator.time.timeSinceStart + + character.index * waveSize) * amplitude * character.uniformIntensity; + + //bottom, torwards one direction + character.current.positions[0] += Vector3.right * sin; + character.current.positions[3] += Vector3.right * sin; + //top, torwards the opposite dir + character.current.positions[1] += Vector3.right * -sin; + character.current.positions[2] += Vector3.right * -sin; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta new file mode 100644 index 0000000..d1e645b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a740b03d4c3f2d84f9cfc7b3a6f8ea80 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs new file mode 100644 index 0000000..600fc74 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs @@ -0,0 +1,19 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Swing", fileName = "Swing Behavior")] + [EffectInfo("swing", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 22.74f)] + [DefaultValue(nameof(baseFrequency), 3.65f)] + [DefaultValue(nameof(baseWaveSize), .171f)] + public sealed class SwingBehavior : BehaviorScriptableSine + { + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar(Mathf.Cos(animator.time.timeSinceStart * frequency + character.index * waveSize) * amplitude); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta new file mode 100644 index 0000000..c32b8a7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63b7822b5552d3748b1acc2a07066822 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs new file mode 100644 index 0000000..858ea38 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs @@ -0,0 +1,22 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Wave", fileName = "Wave Behavior")] + [EffectInfo("wave", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 7.27f)] + [DefaultValue(nameof(baseFrequency), 4f)] + [DefaultValue(nameof(baseWaveSize), .4f)] + public sealed class WaveBehavior : BehaviorScriptableSine + { + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar( + Vector3.up * Mathf.Sin(animator.time.timeSinceStart * frequency + character.index * waveSize) + * amplitude * character.uniformIntensity); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta new file mode 100644 index 0000000..cc67ed1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99de7ce7cdaed2d42b0bd233e69e67db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs new file mode 100644 index 0000000..1067c78 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Wiggle", fileName = "Wiggle Behavior")] + [EffectInfo("wiggle", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 4.74f)] + [DefaultValue(nameof(baseFrequency), 7.82f)] + [DefaultValue(nameof(baseWaveSize), .551f)] + public sealed class WiggleBehavior : BehaviorScriptableSine + { + const int maxDirections = 23; + Vector3[] directions; + int indexCache; + + protected override void OnInitialize() + { + base.OnInitialize(); + + directions = new Vector3[maxDirections]; + + //Calculates a random direction for each character (which won't change) + for(int i = 0; i < maxDirections; i++) + { + directions[i] = TextUtilities.fakeRandoms[Random.Range(0, TextUtilities.fakeRandomsCount - 1)] * Mathf.Sign(Mathf.Sin(i)); + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + indexCache = character.index % maxDirections; + + character.current.positions.MoveChar( + directions[indexCache] + * Mathf.Sin(animator.time.timeSinceStart * frequency + character.index * waveSize) + * amplitude + * character.uniformIntensity); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta new file mode 100644 index 0000000..4a81650 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c98870d7ebce9a4fa6c4a16e9701755 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta new file mode 100644 index 0000000..17ccdac --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c76974580a2e4940a22bd3504b213d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs new file mode 100644 index 0000000..d23907e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs @@ -0,0 +1,14 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + public abstract class BehaviorScriptableBase : AnimationScriptableBase + { + public override float GetMaxDuration() => -1; //infinite + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta new file mode 100644 index 0000000..80b75c4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d77bbe0b705d24c8caed399bf26d7b97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs new file mode 100644 index 0000000..edb14f4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs @@ -0,0 +1,38 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + public abstract class BehaviorScriptableSine : BehaviorScriptableBase + { + //--- BASE VALUES --- + public float baseAmplitude = 1; + public float baseFrequency = 1; + [UnityEngine.Range(0,1)] public float baseWaveSize = .2f; + + //--- EFFECTS INFO --- + protected float amplitude; + protected float frequency; + protected float waveSize; + + + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude; + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch(modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + case "f": frequency = baseFrequency * modifier.value; break; + //TODO if wavesize is 0, then this never changes. Maybe + //set it directly instead of multiplying? + case "w": waveSize = baseWaveSize * modifier.value; break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta new file mode 100644 index 0000000..df89640 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8288d52cadf6b453591b461027037a85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta new file mode 100644 index 0000000..551ad1a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44af3aa44863aa44f926c79c825adb59 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs new file mode 100644 index 0000000..19293d7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs @@ -0,0 +1,84 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Applies multiples animations, allowing user to use one tag for all of them + /// + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Composite Animation", menuName = "Text Animator/Animations/Special/Composite")] + [EffectInfo("", EffectCategory.All)] + public sealed class CompositeAnimation : AnimationScriptableBase + { + public AnimationScriptableBase[] animations = new AnimationScriptableBase[0]; + + protected override void OnInitialize() + { + base.OnInitialize(); + + ValidateArray(); + + foreach (var anim in animations) + { + anim.InitializeOnce(); + } + } + + public override void ResetContext(TAnimCore animator) + { + foreach (var anim in animations) + { + anim.ResetContext(animator); + } + } + + public override void SetModifier(ModifierInfo modifier) + { + base.SetModifier(modifier); + foreach (var anim in animations) + { + anim.SetModifier(modifier); + } + } + + public override void ApplyEffectTo(ref CharacterData character, TAnimCore animator) + { + foreach (var anim in animations) + { + if(anim.CanApplyEffectTo(character, animator)) + anim.ApplyEffectTo(ref character, animator); + } + } + + //Prevents double check + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + public override float GetMaxDuration() + { + //Calculates max duration between animations + float maxDuration = -1; + foreach (var anim in animations) + { + maxDuration = Mathf.Max(maxDuration, anim.GetMaxDuration()); + } + + return maxDuration; + } + + void ValidateArray() + { + //prevents recursion + var validated = new System.Collections.Generic.List(); + + for (int i = 0; i < animations.Length; i++) + { + if(animations[i]!=this) validated.Add(animations[i]); + } + + animations = validated.ToArray(); + } + + void OnValidate() => ValidateArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta new file mode 100644 index 0000000..504dc77 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1030e778d6c8678498b5860c46980fb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs new file mode 100644 index 0000000..ccd6770 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs @@ -0,0 +1,98 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Applies multiples animations, allowing user to use one tag for all of them + /// + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Composite With Emission", menuName = "Text Animator/Animations/Special/Composite With Emission")] + [EffectInfo("", EffectCategory.All)] + public sealed class CompositeWithEmission : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + public AnimationScriptableBase[] animations = new AnimationScriptableBase[0]; + + protected override void OnInitialize() + { + base.OnInitialize(); + + ValidateArray(); + + foreach (var anim in animations) + { + anim.InitializeOnce(); + } + + prev = new MeshData(); + prev.colors = new Color32[TextUtilities.verticesPerChar]; + prev.positions = new Vector3[TextUtilities.verticesPerChar]; + } + + public override void ResetContext(TAnimCore animator) + { + foreach (var anim in animations) + { + anim.ResetContext(animator); + } + } + + public override void SetModifier(ModifierInfo modifier) + { + base.SetModifier(modifier); + foreach (var anim in animations) + { + anim.SetModifier(modifier); + } + } + + MeshData prev; + public override void ApplyEffectTo(ref CharacterData character, TAnimCore animator) + { + float timePassed = timeMode.GetTime(animator.time.timeSinceStart, character.passedTime, character.index); + if(timePassed<0) return; + + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + prev.positions[i] = character.current.positions[i]; + prev.colors[i] = character.current.colors[i]; + } + + float weight = emissionCurve.Evaluate(timePassed); + foreach (var anim in animations) + { + if(anim.CanApplyEffectTo(character, animator)) + anim.ApplyEffectTo(ref character, animator); + } + + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + character.current.positions[i] = Vector3.LerpUnclamped(prev.positions[i], character.current.positions[i], weight); + character.current.colors[i] = Color32.LerpUnclamped(prev.colors[i], character.current.colors[i], weight); + } + } + + //Prevents double check + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + + void ValidateArray() + { + //prevents recursion + var validated = new System.Collections.Generic.List(); + + for (int i = 0; i < animations.Length; i++) + { + if(animations[i]!=this) validated.Add(animations[i]); + } + + animations = validated.ToArray(); + } + + void OnValidate() => ValidateArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta new file mode 100644 index 0000000..6852386 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c6129e0ca01d4768b7b56e188a0001d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta new file mode 100644 index 0000000..d8ac5fe --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e775bae152dd345599f58d6360352d31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta new file mode 100644 index 0000000..7dbe211 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 634e4c6f22807e7449881726b1bd52ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs new file mode 100644 index 0000000..9df2768 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs @@ -0,0 +1,72 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Uniform Curve Animation", menuName = "Text Animator/Animations/Special/Uniform Curve")] + [EffectInfo("", EffectCategory.All)] + public sealed class UniformCurveAnimation : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + public AnimationData animationData = new AnimationData(); + + //--- Modifiers --- + float weightMult; + float timeSpeed; + + bool hasTransformEffects; + + + public override void ResetContext(TAnimCore animator) + { + weightMult = 1; + timeSpeed = 1; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": //frequency, increases the time speed + timeSpeed = modifier.value; + break; + + case "a": //increase the amplitude + weightMult = modifier.value; + break; + } + } + + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = timeMode.GetTime(animator.time.timeSinceStart * timeSpeed, character.passedTime * timeSpeed, character.index); + if (timePassed < 0) + return; + + float weight = weightMult * emissionCurve.Evaluate(timePassed); + + if(animationData.TryCalculatingMatrix(character, timePassed, weight, out var matrix, out var offset)) + { + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + character.current.positions[i] = matrix.MultiplyPoint3x4(character.current.positions[i] - offset) + offset; + } + } + + if(animationData.TryCalculatingColor(character, timePassed, weight, out var color)) + { + character.current.colors.LerpUnclamped(color, Mathf.Clamp01(weight)); + } + + } + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta new file mode 100644 index 0000000..af9eee7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f29c16c9fe849e442b4f1bab0c32e28a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs new file mode 100644 index 0000000..fe82367 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs @@ -0,0 +1,112 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Vertex Curve Animation", menuName = "Text Animator/Animations/Special/Vertex Curve Animation")] + [EffectInfo("", EffectCategory.All)] + public sealed class VertexCurveAnimation : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + + [SerializeField] AnimationData[] animationPerVertexData = new AnimationData[TextUtilities.verticesPerChar]; + public AnimationData[] VertexData + { + get => animationPerVertexData; + set + { + animationPerVertexData = value; + ClampVertexDataArray(); + } + } + + //--- Modifiers --- + float timeSpeed; + float weightMult; + + //--- Management --- + Matrix4x4 matrix; + Vector3 offset; + Vector3 movement; + Vector2 scale; + Quaternion rot; + Color32 color; + + public override void ResetContext(TAnimCore animator) + { + weightMult = 1; + timeSpeed = 1; + ClampVertexDataArray(); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": //frequency, increases the time speed + timeSpeed = modifier.value; + break; + + case "a": //increase the amplitude + weightMult = modifier.value; + break; + } + } + + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = timeMode.GetTime(animator.time.timeSinceStart * timeSpeed, character.passedTime * timeSpeed, character.index); + if(timePassed<0) + return; + + float weight = weightMult * emissionCurve.Evaluate(timePassed); + + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + if(animationPerVertexData[i].TryCalculatingMatrix(character, timePassed, weight, out matrix, out offset)) + { + character.current.positions[i] = matrix.MultiplyPoint3x4(character.current.positions[i] - offset) + offset; + } + + if(animationPerVertexData[i].TryCalculatingColor(character, timePassed, weight, out color)) + { + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], color, Mathf.Clamp01(weight)); + } + } + } + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + void ClampVertexDataArray() + { + for (int i = 0; i < animationPerVertexData.Length; i++) + { + if (animationPerVertexData[i] == null) + animationPerVertexData[i] = new AnimationData(); + } + + if (animationPerVertexData.Length != TextUtilities.verticesPerChar) + { + Debug.LogError("Vertex data array must have four vertices. Clamping/Resizing to four."); + + var newArray = new AnimationData[TextUtilities.verticesPerChar]; + for (int i = 0; i < newArray.Length; i++) + { + if (i < animationPerVertexData.Length) + newArray[i] = animationPerVertexData[i]; + else + newArray[i] = new AnimationData(); + } + animationPerVertexData = newArray; + } + } + + void OnValidate() => ClampVertexDataArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta new file mode 100644 index 0000000..80b130b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29c51188496414c2893fff43f194d40a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta new file mode 100644 index 0000000..d9cd875 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9447a4edcc4c042219276d5c0bad1da9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs new file mode 100644 index 0000000..ea50d70 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs @@ -0,0 +1,87 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [System.Serializable] + public class AnimationData + { + //--- Curves --- + //Movement + [FloatCurveProperty] public FloatCurve movementX = new FloatCurve(1, 0, 0); + [FloatCurveProperty] public FloatCurve movementY = new FloatCurve(1, 0, 0); + [FloatCurveProperty] public FloatCurve movementZ = new FloatCurve(1, 0, 0); + + //Scale + [FloatCurveProperty] public FloatCurve scaleX = new FloatCurve(2, 0, 1); + [FloatCurveProperty] public FloatCurve scaleY = new FloatCurve(2, 0, 1); + + //Rotation + [FloatCurveProperty] public FloatCurve rotX = new FloatCurve(45, 0, 0); + [FloatCurveProperty] public FloatCurve rotY = new FloatCurve(45, 0, 0); + [FloatCurveProperty] public FloatCurve rotZ = new FloatCurve(45, 0, 0); + + //Color + [ColorCurveProperty] public ColorCurve colorCurve = new ColorCurve(0); + + Vector3 movement; + Vector2 scale; + Quaternion rot; + + public bool TryCalculatingMatrix(Core.CharacterData character, + float timePassed, + float weight, + out Matrix4x4 matrix, + out Vector3 offset) + { + //Saves a bunch of performance in case user wants only color or movement + //TODO cache + matrix = new Matrix4x4(); + + if (!(movementX.enabled || movementY.enabled || movementZ.enabled + || rotX.enabled || rotY.enabled || rotZ.enabled + || scaleX.enabled || scaleY.enabled)) + { + offset = Vector2.zero; + return false; + } + + offset = (character.current.positions[0] + character.current.positions[2]) / 2f; + + //weighted rotation + rot = Quaternion.Euler( + Mathf.LerpUnclamped(0, rotX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, rotY.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, rotZ.Evaluate(timePassed, character.index), weight)); + + //weighted movement + movement = new Vector3( + Mathf.LerpUnclamped(0, movementX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, movementY.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, movementZ.Evaluate(timePassed, character.index), weight)); + + //weighted scale + scale = new Vector2( + Mathf.LerpUnclamped(1, scaleX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(1, scaleY.Evaluate(timePassed, character.index), weight)); + + matrix.SetTRS( + movement, + rot, + scale); + + return true; + } + + public bool TryCalculatingColor(Core.CharacterData character, float timePassed, float weight, out Color32 color) + { + if(!colorCurve.enabled) + { + color = Color.white; + return false; + } + + color = colorCurve.Evaluate(timePassed, character.index); + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta new file mode 100644 index 0000000..f696898 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b417e2a805ff4c638d914f06efa1659 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs new file mode 100644 index 0000000..ab948dd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs @@ -0,0 +1,47 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + public class ColorCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] + public struct ColorCurve + { + public bool enabled; + + public Gradient colorOverTime; + public float waveSize; + public float duration; + + public ColorCurve(float waveSize) + { + this.enabled = false; + this.waveSize = waveSize; + this.duration = 1; + this.colorOverTime = new Gradient(); + colorOverTime.SetKeys( + new GradientColorKey[] + { + new GradientColorKey(Color.white, 0), + new GradientColorKey(Color.cyan, 0.5f), + new GradientColorKey(Color.white, 1) + }, + + new GradientAlphaKey[] + { + new GradientAlphaKey(1, 0), + new GradientAlphaKey(1, 1) + } + ); + } + + public Color32 Evaluate(float time, int charIndex) + { + time = Mathf.Repeat(time + charIndex * waveSize, duration); + return colorOverTime.Evaluate(time); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta new file mode 100644 index 0000000..5927395 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 54279f81e5b424013885578744e46a04 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs new file mode 100644 index 0000000..fc14538 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + public class EmissionCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] + public class EmissionCurve + { + public int cycles; + public float duration; + public float GetMaxDuration() => cycles > 0 ? duration * cycles : -1; + [SerializeField] public AnimationCurve weightOverTime; + public EmissionCurve() + { + cycles = -1; + duration = 1; + weightOverTime = new AnimationCurve( + new[] + { + new Keyframe(0, 1), + new Keyframe(1, 1) + }); + } + + public EmissionCurve(params Keyframe[] keyframes) + { + cycles = -1; + duration = 1; + weightOverTime = new AnimationCurve(keyframes); + } + + public float Evaluate(float timePassed) + { + if (cycles > 0 && timePassed > duration * cycles) return 0; + + return weightOverTime.Evaluate(timePassed % duration); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta new file mode 100644 index 0000000..0e3aebe --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a1f62454fdf64f1fa75746c09b89a39 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs new file mode 100644 index 0000000..3c8814e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs @@ -0,0 +1,39 @@ +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + public class FloatCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] //TODO test + public struct FloatCurve + { + public bool enabled; + + readonly float defaultAmplitude; + public AnimationCurve weightOverTime; + public float amplitude; + public float waveSize; + + public FloatCurve(float amplitude, float waveSize, float defaultAmplitude) + { + this.defaultAmplitude = defaultAmplitude; + this.enabled = false; + this.amplitude = amplitude; + this.weightOverTime = new AnimationCurve(new Keyframe(0, 0), new Keyframe(.5f, .5f), new Keyframe(1, 0)); + this.weightOverTime.preWrapMode = WrapMode.Loop; + this.weightOverTime.postWrapMode = WrapMode.Loop; + this.waveSize = 0; + } + + public float Evaluate(float passedTime, int charIndex) + { + if(!enabled) return defaultAmplitude; + + return Mathf.LerpUnclamped(defaultAmplitude, amplitude, weightOverTime.Evaluate(passedTime + waveSize * charIndex)); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta new file mode 100644 index 0000000..b22e5db --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 534fa2c94985d4c0f9e3f08be5643d93 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs new file mode 100644 index 0000000..ac8f73a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs @@ -0,0 +1,29 @@ +namespace Febucci.UI.Effects +{ + [System.Serializable] + public struct TimeMode + { + public float startDelay; + public bool useUniformTime; + public float waveSize; + public float timeSpeed; + + public TimeMode(bool useUniformTime) + { + this.useUniformTime = useUniformTime; + waveSize = 0; + timeSpeed = 1; + startDelay = 0; + tempTime = 0; + } + + float tempTime; + public float GetTime(float animatorTime, float charTime, int charIndex) + { + tempTime = ((useUniformTime ? animatorTime : charTime) - startDelay) * timeSpeed - waveSize * charIndex; + if (tempTime < startDelay) + return -1; + return tempTime; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta new file mode 100644 index 0000000..d21f849 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7da2fc6307c647549bfdba8d42c00652 +timeCreated: 1680257522 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta new file mode 100644 index 0000000..34e886d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da150bd21a2db4b87ac5eed209c5ae29 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs new file mode 100644 index 0000000..1104dbd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs @@ -0,0 +1,54 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + public abstract class AnimationScriptableBase : ScriptableObject, ITagProvider + { + [SerializeField] string tagID; + public string TagID + { + get => tagID; + set => tagID = value; //TODO if playing, discard rebuild if already initialized + } + + //--- INITIALIZATION --- + bool initialized = false; + public void InitializeOnce() + { + if(initialized) return; + + initialized = true; + + OnInitialize(); + } + + protected virtual void OnInitialize(){ } + + void OnEnable() + { + //resets for enter playmode settings + initialized = false; + } + + //--- ABSTRACT / VIRTUAL METHODS ---+ + + /// + /// Resets the effect context (base variables) for every region, before applying modifiers (if any) with + /// + public abstract void ResetContext(TAnimCore animator); + + /// + /// Changes an effect' base variable based on the passed parameter. + /// + /// + public virtual void SetModifier(ModifierInfo modifier) { } + public abstract float GetMaxDuration(); + public abstract bool CanApplyEffectTo(CharacterData character, TAnimCore animator); + public abstract void ApplyEffectTo(ref CharacterData character, TAnimCore animator); + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta new file mode 100644 index 0000000..19bc48a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdd8e5ebf6899a84f89605d743590fdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs new file mode 100644 index 0000000..b19fd63 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs @@ -0,0 +1,14 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Contains animations that will be recognized and used by Text Animator + /// + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "Animations Database", menuName = "Text Animator/Animations/Create Animations Database", order = 100)] + public class AnimationsDatabase : Database + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta new file mode 100644 index 0000000..9870f19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 103e863f5c0347be8a512f431aaf5ec1 +timeCreated: 1677521214 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs new file mode 100644 index 0000000..e7109f9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs @@ -0,0 +1,17 @@ +using System; + +namespace Febucci.UI.Core +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] + public class DefaultValueAttribute : Attribute + { + public readonly string variableName; + public readonly float variableValue; + + public DefaultValueAttribute(string variableName, float variableValue) + { + this.variableName = variableName; + this.variableValue = variableValue; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta new file mode 100644 index 0000000..40defca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1aa92d7ec7964d30b8976caee1babfe7 +timeCreated: 1678706826 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs new file mode 100644 index 0000000..c641318 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs @@ -0,0 +1,34 @@ +using System; + +namespace Febucci.UI.Core +{ + [Flags] + public enum EffectCategory + { + None = 0, + Behaviors = 1, + Appearances = 2, + All = Behaviors | Appearances + } + + [AttributeUsage(AttributeTargets.Class)] + public class TagInfoAttribute : Attribute + { + public readonly string tagID; + public TagInfoAttribute(string tagID) + { + this.tagID = tagID; + } + } + + [AttributeUsage(AttributeTargets.Class)] + public class EffectInfoAttribute : TagInfoAttribute + { + public readonly EffectCategory category; + + public EffectInfoAttribute(string tagID, EffectCategory category) : base(tagID) + { + this.category = category; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta new file mode 100644 index 0000000..8d82730 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d39438ca5b9e4692916f5929b4c3ff1d +timeCreated: 1678384125 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta new file mode 100644 index 0000000..f75844b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b5322a2db28c4d3893673cabc2b05db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs new file mode 100644 index 0000000..7b202a1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs @@ -0,0 +1,105 @@ +using Febucci.UI.Actions; +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Contains global settings for Text Animator, like effects enabled status and default databases. + /// + [System.Serializable] + [CreateAssetMenu(fileName = "Text Animator Settings", menuName = "Text Animator/Settings", order = 100)] + public sealed class TextAnimatorSettings : ScriptableObject + { + public const string expectedName = "TextAnimatorSettings"; + static TextAnimatorSettings instance; + + /// + /// The current instance of the settings. If it's null, it will be loaded from the resources. + /// (Make sure to have one "TextAnimatorSettings" file in the Resources folder.) + /// + public static TextAnimatorSettings Instance + { + get + { + if (instance) return instance; + + LoadSettings(); + return instance; + } + } + + /// + /// Manually loads the settings ScriptableObject in case it wasn't loaded yet. + /// + public static void LoadSettings() + { + if(instance) return; + instance = Resources.Load(expectedName); + } + + /// + /// Manually unloads the settings ScriptableObject instance. + /// + public static void UnloadSettings() + { + if(!instance) return; + + Resources.UnloadAsset(instance); + instance = null; + } + + /// + /// Sets all the effects (both appearances/disappearances and behaviors) status. + /// + /// + public static void SetAllEffectsActive(bool enabled) + { + SetAppearancesActive(enabled); + SetBehaviorsActive(enabled); + } + + /// + /// Sets all appearances effects status. + /// + /// + public static void SetAppearancesActive(bool enabled) + { + if (Instance) Instance.appearances.enabled = enabled; + } + + /// + /// Sets all behaviors effects status. + /// + /// + public static void SetBehaviorsActive(bool enabled) + { + if (Instance) Instance.behaviors.enabled = enabled; + } + + [System.Serializable] + public struct Category where T : ScriptableObject + { + public T defaultDatabase; + + public bool enabled; + public char openingSymbol; + public char closingSymbol; + + public Category(char openingSymbol, char closingSymbol) + { + defaultDatabase = null; + enabled = true; + this.openingSymbol = openingSymbol; + this.closingSymbol = closingSymbol; + } + } + + [Header("Default info")] + public Category behaviors = new Category('<', '>'); + public Category appearances = new Category('{', '}'); + public Category actions = new Category('<', '>'); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta new file mode 100644 index 0000000..e937fc6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9743a50feedea474dbef99517d3e30eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta new file mode 100644 index 0000000..5863d14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0ccd8b0aa52fed49bcb7994d0e16485 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs new file mode 100644 index 0000000..a0ac156 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; + +namespace Febucci.UI.Core +{ + /// + /// Helper class. Contains methods to parse attributes/values from strings. + /// + public static class FormatUtils + { + /// + /// Tries to parse a rich text tag parameter. + /// + /// + /// Mostly used in combination with custom typewriter actions. (Manual: Writing Custom actions C#) + /// + /// list of all the attributesi in the rich text tag + /// the parameter's index in the list + /// default value, assigned if the parsing is not successful + /// result from the parsing + /// true if successful + public static bool TryGetFloat(List attributes, int index, float defValue, out float result) + { + if (index >= attributes.Count || index < 0) + { + result = defValue; + return false; + } + + return TryGetFloat(attributes[index], defValue, out result); + } + + //TODO Docs + public static bool TryGetFloat(string attribute, float defValue, out float result) + { + if (ParseFloat(attribute, out result)) + return true; + + result = defValue; + return false; + } + + /// + /// Tries parsing a float given a string, independently of the system's culture + /// + /// + /// + /// + public static bool ParseFloat(string value, out float result) + { + return float.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out result); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta new file mode 100644 index 0000000..a4e8332 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fa97b1b4f8a3bfa4b82ca06b835b4bb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs new file mode 100644 index 0000000..6c2a6fd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs @@ -0,0 +1,216 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + /// + /// Helper class. Contains methods (including extensions) that modify your letters positions and colors. + /// + public static class TextUtilities + { + #region Consts + + /// + /// Represents the number of vertices per character/letter. + /// + /// + /// P.S. bars/underlines have a different vertices number, but are not animated by TextAnimator. + /// + public const int verticesPerChar = 4; + + #endregion + + #region Vector Utilities + + public const int fakeRandomsCount = 25; //18° angle difference + internal static Vector3[] fakeRandoms; + public static Vector3[] FakeRandoms => fakeRandoms; + + static bool initialized = false; + internal static void Initialize() + { + if (initialized) + return; + + initialized = true; + + //Creates fake randoms from a list of directions (with an incremental angle of 360/fakeRandomsCount between each) + //and then sorts them randomly, avoiding repetitions (which could have occurred using Random.insideUnitCircle) + System.Collections.Generic.List randomDirections = new System.Collections.Generic.List(); + + float angle; + for (float i = 0; i < 360; i += 360 / fakeRandomsCount) + { + angle = i * Mathf.Deg2Rad; + randomDirections.Add(new Vector3(Mathf.Sin(angle), Mathf.Cos(angle)).normalized); + } + + fakeRandoms = new Vector3[fakeRandomsCount]; + int randomIndex; + for (int i = 0; i < fakeRandoms.Length; i++) + { + randomIndex = Random.Range(0, randomDirections.Count); + fakeRandoms[i] = randomDirections[randomIndex]; + randomDirections.RemoveAt(randomIndex); + } + } + + /// + /// Rotates a point around a 2D center by X degrees + /// + /// point to rotate + /// rotation's center + /// rotation degrees + /// + /// + /// letterVertex.RotateAround(letterMiddlePoint, angle); + /// + public static Vector3 RotateAround(this Vector3 vec, Vector2 center, float rotDegrees) + { + rotDegrees *= Mathf.Deg2Rad; + + float tempX = vec.x - center.x; + float tempY = vec.y - center.y; + + float rotatedX = tempX * Mathf.Cos(rotDegrees) - tempY * Mathf.Sin(rotDegrees); + float rotatedY = tempX * Mathf.Sin(rotDegrees) + tempY * Mathf.Cos(rotDegrees); + + vec.x = rotatedX + center.x; + vec.y = rotatedY + center.y; + + return vec; + } + + #endregion + + /// + /// Moves a char towards a direction. Equivalent to adding a vector to all the vertices. + /// + /// + /// + /// + public static void MoveChar(this Vector3[] vec, Vector3 dir) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] += dir; + } + } + + /// + /// Sets all the vertices of character to the given position. + /// + /// + /// + /// + public static void SetChar(this Vector3[] vec, Vector3 pos) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = pos; + } + } + + /// + /// Lerps all the character's vertices (without checking if pct is between 0 and 1) + /// + /// + /// + /// + /// + public static void LerpUnclamped(this Vector3[] vec, Vector3 target, float pct) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = Vector3.LerpUnclamped(vec[j], target, pct); + } + } + + /// + /// Returns the middle position of the given array + /// + /// + /// + public static Vector3 GetMiddlePos(this Vector3[] vec) + { + return (vec[0] + vec[2]) / 2f; //bot left and top right + + //'Normal way', for arrays with any size (not happening, since Bars aren't animated) + /* + Vector3 middlePos = Vector3.zero; + for (byte j = 0; j < vec.Length; j++) + { + middlePos += vec[j]; + } + + return (middlePos / vec.Length); + */ + } + + + /// + /// Rotates all the vertices towards an angle, with their center as the rotation pivot + /// + /// + /// + /// + public static void RotateChar(this Vector3[] vec, float angle) + { + Vector3 middlePos = vec.GetMiddlePos(); + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = vec[j].RotateAround(middlePos, angle); + } + } + + public static void RotateChar(this Vector3[] vec, float angle, Vector3 pivot) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = vec[j].RotateAround(pivot, angle); + } + } + + /// + /// Sets the color of all the vertices of the character. + /// + /// + /// + /// + public static void SetColor(this Color32[] col, Color32 target) + { + for (byte j = 0; j < col.Length; j++) + { + col[j] = target; + } + } + + /// + /// Lerps all the colors of the characters towards a given target + /// + /// + /// + /// + /// + public static void LerpUnclamped(this Color32[] col, Color32 target, float pct) + { + for (byte j = 0; j < col.Length; j++) + { + col[j] = Color32.LerpUnclamped(col[j], target, pct); + } + } + + + /// + /// Calculates the animation curve duration + /// + /// + /// + public static float CalculateCurveDuration(this AnimationCurve curve) + { + if (curve.keys.Length > 0) + return curve.keys[curve.length - 1].time; + + return 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta new file mode 100644 index 0000000..26fec25 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 792ffbd6b25610f48800fce737481b10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs new file mode 100644 index 0000000..f461a83 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs @@ -0,0 +1,90 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + //TODO Docs + + /// + /// Helper class used to interpolate effects. + /// + public static class Tween + { + public static float EaseIn(float t) + { + return t * t; + } + + public static float Flip(float x) + { + return 1 - x; + } + + public static float Square(float t) + { + return t * t; + } + + public static float EaseOut(float t) + { + return Flip(Square(Flip(t))); + } + + public static float EaseInOut(float t) + { + return Mathf.Lerp(EaseIn(t), EaseOut(t), t); + } + + #region BounceOut + public static float BounceOut(float t) + { + /* + License of the original method/algorithm, modified later for C#. + + ------------------------Start------------------------ + The MIT License + + Copyright (c) 2010-2012 Tween.js authors. + + Easing equations Copyright (c) 2001 Robert Penner http:/robertpenner.com/ easing/ + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + ------------------------End------------------------ + */ + + if (t < (1f / 2.75f)) + { + return 7.5625f * t * t; + } + else if (t < (2f / 2.75f)) + { + return 7.5625f * (t -= (1.5f / 2.75f)) * t + 0.75f; + } + else if (t < (2.5f / 2.75f)) + { + return 7.5625f * (t -= (2.25f / 2.75f)) * t + 0.9375f; + } + else + { + return 7.5625f * (t -= (2.625f / 2.75f)) * t + 0.984375f; + } + } + #endregion + } +} diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta new file mode 100644 index 0000000..93d140d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2edcfb3709f1187429d9fda2e36df38e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index e907cc7..5b104ea 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -2,20 +2,24 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2180264 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: LiberationSans SDF Material m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} - m_ShaderKeywords: + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -67,6 +71,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _Ambient: 0.5 - _Bevel: 0.5 @@ -107,9 +112,9 @@ Material: - _Parallax: 0.02 - _PerspectiveFilter: 0.875 - _Reflectivity: 10 - - _ScaleRatioA: 0.90909094 + - _ScaleRatioA: 0.9 - _ScaleRatioB: 0.73125 - - _ScaleRatioC: 0.7386364 + - _ScaleRatioC: 0.73125 - _ScaleX: 1 - _ScaleY: 1 - _ShaderFlags: 0 @@ -148,6 +153,7 @@ Material: - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -165,15 +171,16 @@ MonoBehaviour: materialHashCode: 462855346 m_Version: 1.1.0 m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 - m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, - type: 3} + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} m_AtlasPopulationMode: 1 m_FaceInfo: + m_FaceIndex: 0 m_FamilyName: Liberation Sans m_StyleName: Regular m_PointSize: 86 m_Scale: 1 + m_UnitsPerEM: 0 m_LineHeight: 98.8916 m_AscentLine: 77.853516 m_CapLine: 59 @@ -189,19 +196,709 @@ MonoBehaviour: m_StrikethroughOffset: 18 m_StrikethroughThickness: 6.298828 m_TabWidth: 24 - m_GlyphTable: [] - m_CharacterTable: [] + m_GlyphTable: + - m_Index: 2030 + m_Metrics: + m_Width: 64 + m_Height: 9 + m_HorizontalBearingX: 11 + m_HorizontalBearingY: 9 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 64 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 66 + m_Metrics: + m_Width: 51 + m_Height: 6 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: -12 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 93 + m_Y: 10 + m_Width: 51 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 31 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 163 + m_Y: 10 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 69 + m_Metrics: + m_Width: 40 + m_Height: 63 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 93 + m_Y: 35 + m_Width: 40 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 82 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 10 + m_Y: 38 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 88 + m_Metrics: + m_Width: 38 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 10 + m_Y: 104 + m_Width: 38 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 81 + m_Metrics: + m_Width: 38 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 224 + m_Y: 10 + m_Width: 38 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 70 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 152 + m_Y: 72 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 72 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 67 + m_Y: 117 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 33 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 281 + m_Y: 10 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 51 + m_Metrics: + m_Width: 46 + m_Height: 59 + m_HorizontalBearingX: 7 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 57 + m_GlyphRect: + m_X: 342 + m_Y: 10 + m_Width: 46 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 79 + m_Metrics: + m_Width: 9 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 10 + m_Y: 169 + m_Width: 9 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 68 + m_Metrics: + m_Width: 45 + m_Height: 47 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 407 + m_Y: 10 + m_Width: 45 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 86 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 281 + m_Y: 72 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 90 + m_Metrics: + m_Width: 63 + m_Height: 45 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 61 + m_GlyphRect: + m_X: 407 + m_Y: 76 + m_Width: 63 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 76 + m_Metrics: + m_Width: 9 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 38 + m_Y: 169 + m_Width: 9 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 87 + m_Metrics: + m_Width: 23 + m_Height: 56 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 55 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 338 + m_Y: 88 + m_Width: 23 + m_Height: 56 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 75 + m_Metrics: + m_Width: 38 + m_Height: 62 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 209 + m_Y: 75 + m_Width: 38 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 92 + m_Metrics: + m_Width: 41 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 266 + m_Y: 138 + m_Width: 41 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 80 + m_Metrics: + m_Width: 64 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 74 + m_GlyphRect: + m_X: 128 + m_Y: 156 + m_Width: 64 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 85 + m_Metrics: + m_Width: 23 + m_Height: 46 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 46 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 471 + m_Y: 10 + m_Width: 23 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 71 + m_Metrics: + m_Width: 40 + m_Height: 63 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 66 + m_Y: 183 + m_Width: 40 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 18 + m_Metrics: + m_Width: 24 + m_Height: 63 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 211 + m_Y: 156 + m_Width: 24 + m_Height: 63 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 73 + m_Metrics: + m_Width: 25 + m_Height: 62 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 62 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 10 + m_Y: 250 + m_Width: 25 + m_Height: 62 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 93 + m_Metrics: + m_Width: 35 + m_Height: 45 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 125 + m_Y: 221 + m_Width: 35 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 2030 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 m_AtlasTextures: - {fileID: 28268798066460806} m_AtlasTextureIndex: 0 m_IsMultiAtlasTexturesEnabled: 0 m_ClearDynamicDataOnBuild: 1 - m_UsedGlyphRects: [] - m_FreeGlyphRects: + m_UsedGlyphRects: - m_X: 0 m_Y: 0 - m_Width: 511 + m_Width: 83 + m_Height: 28 + - m_X: 83 + m_Y: 0 + m_Width: 70 + m_Height: 25 + - m_X: 153 + m_Y: 0 + m_Width: 61 + m_Height: 62 + - m_X: 83 + m_Y: 25 + m_Width: 59 + m_Height: 82 + - m_X: 0 + m_Y: 28 + m_Width: 61 + m_Height: 66 + - m_X: 0 + m_Y: 94 + m_Width: 57 + m_Height: 65 + - m_X: 214 + m_Y: 0 + m_Width: 57 + m_Height: 65 + - m_X: 142 + m_Y: 62 + m_Width: 57 + m_Height: 66 + - m_X: 57 + m_Y: 107 + m_Width: 61 + m_Height: 66 + - m_X: 271 + m_Y: 0 + m_Width: 61 + m_Height: 62 + - m_X: 332 + m_Y: 0 + m_Width: 65 + m_Height: 78 + - m_X: 0 + m_Y: 159 + m_Width: 28 + m_Height: 81 + - m_X: 397 + m_Y: 0 + m_Width: 64 + m_Height: 66 + - m_X: 271 + m_Y: 62 + m_Width: 57 + m_Height: 66 + - m_X: 397 + m_Y: 66 + m_Width: 82 + m_Height: 64 + - m_X: 28 + m_Y: 159 + m_Width: 28 + m_Height: 81 + - m_X: 328 + m_Y: 78 + m_Width: 42 + m_Height: 75 + - m_X: 199 + m_Y: 65 + m_Width: 57 + m_Height: 81 + - m_X: 256 + m_Y: 128 + m_Width: 60 + m_Height: 82 + - m_X: 118 + m_Y: 146 + m_Width: 83 + m_Height: 65 + - m_X: 461 + m_Y: 0 + m_Width: 42 + m_Height: 65 + - m_X: 56 + m_Y: 173 + m_Width: 59 + m_Height: 82 + - m_X: 201 + m_Y: 146 + m_Width: 43 + m_Height: 82 + - m_X: 0 + m_Y: 240 + m_Width: 44 + m_Height: 81 + - m_X: 115 + m_Y: 211 + m_Width: 54 + m_Height: 64 + m_FreeGlyphRects: + - m_X: 142 + m_Y: 25 + m_Width: 11 + m_Height: 37 + - m_X: 61 + m_Y: 28 + m_Width: 22 + m_Height: 79 + - m_X: 57 + m_Y: 94 + m_Width: 26 + m_Height: 13 + - m_X: 328 + m_Y: 62 + m_Width: 4 + m_Height: 16 + - m_X: 370 + m_Y: 130 + m_Width: 141 + m_Height: 381 + - m_X: 370 + m_Y: 78 + m_Width: 27 + m_Height: 433 + - m_X: 199 + m_Y: 62 + m_Width: 15 + m_Height: 3 + - m_X: 316 + m_Y: 153 + m_Width: 195 + m_Height: 358 + - m_X: 256 + m_Y: 65 + m_Width: 15 + m_Height: 63 + - m_X: 316 + m_Y: 128 + m_Width: 12 + m_Height: 383 + - m_X: 118 + m_Y: 107 + m_Width: 24 + m_Height: 39 + - m_X: 118 + m_Y: 128 + m_Width: 81 + m_Height: 18 + - m_X: 461 + m_Y: 65 + m_Width: 50 + m_Height: 1 + - m_X: 479 + m_Y: 65 + m_Width: 32 + m_Height: 446 + - m_X: 503 + m_Y: 0 + m_Width: 8 m_Height: 511 + - m_X: 56 + m_Y: 159 + m_Width: 1 + m_Height: 14 + - m_X: 244 + m_Y: 210 + m_Width: 267 + m_Height: 301 + - m_X: 244 + m_Y: 146 + m_Width: 12 + m_Height: 365 + - m_X: 0 + m_Y: 321 + m_Width: 511 + m_Height: 190 + - m_X: 44 + m_Y: 240 + m_Width: 12 + m_Height: 271 + - m_X: 115 + m_Y: 173 + m_Width: 3 + m_Height: 38 + - m_X: 169 + m_Y: 228 + m_Width: 342 + m_Height: 283 + - m_X: 169 + m_Y: 211 + m_Width: 32 + m_Height: 300 + - m_X: 44 + m_Y: 275 + m_Width: 467 + m_Height: 236 + - m_X: 44 + m_Y: 255 + m_Width: 71 + m_Height: 256 m_fontInfo: Name: Liberation Sans PointSize: 86 @@ -233,7 +930,37 @@ MonoBehaviour: m_KerningTable: kerningPairs: [] m_FontFeatureTable: - m_GlyphPairAdjustmentRecords: [] + m_GlyphPairAdjustmentRecords: + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 73 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.546875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 73 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 fallbackFontAssets: [] m_FallbackFontAssetTable: [] m_CreationSettings: @@ -313,15 +1040,21 @@ Texture2D: Hash: 00000000000000000000000000000000 m_ForcedFallbackFormat: 4 m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 serializedVersion: 2 - m_Width: 0 - m_Height: 0 - m_CompleteImageSize: 0 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 + m_MipsStripped: 0 m_TextureFormat: 1 m_MipCount: 1 m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMipmapLimit: 0 + m_MipmapLimitGroupName: m_StreamingMipmaps: 0 m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 m_AlphaIsTransparency: 0 m_ImageCount: 1 m_TextureDimension: 2 @@ -335,9 +1068,11 @@ Texture2D: m_WrapW: 0 m_LightmapFormat: 0 m_ColorSpace: 0 - image data: 0 - _typelessdata: + m_PlatformBlob: + image data: 262144 + _typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a080400000000000000000000000000020507080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b090601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070c0f0e0c090400000000000000000000000000030613131313131313130d0c0a07020000000000000000000000000003060809131313131313130b0b090501000000000000000000000004080c0e0f0c07070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004090e111213131313131313131306040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e111112131312110f0c0908060300000000000000000406070b0f1213131211100e0c0b090601000000000000000000000003090d1012131313131313130e0d0b0803000000000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b0500000000000000000003090e12141519191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191816120d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314191c1b19150f0902000000000000000000060c101220202020202020201a1917130e0800000000000000000000040a0f13151620202020202020181715110c06000000000000000002090f14181b1b191413110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f151a1d1f20202020202020202013100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181b1d1e1f201f1f1d1b191515120f0a0401000000070c101313181c1e1f201f1e1d1b181815120d06000000000000000000070e14191d1f202020202020201b1a17140e08010000000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c17100800000000000000060d141a1e2122262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262525221e181109010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202126292825201b140c03000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000070f161b1f22232d2d2d2d2d2d2d2524211d181109000000000000030b131a202527282621201d19130f0a04010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d1f1c18120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e212125282a2b2c2c2c2b2a282622211f1b15110d08030b12181c1f2025292b2c2c2c2b2a272524221d181109010000000000000811191f25292b2c2d2d2d2d2d2d2726241f1a130b020000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a11080000000000060f181f262a2d2e3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232312e29231b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10161b1e25292d2e333534312c251e150c0200000000030c151c23282c393939393939393933322f2a241c140a00000000000007101920272b2e2f3939393939393932312e29221b120900000000020b151d252c313435332e2d2a251e1b16110d07010000000000000000000000000000000000000000000000000000000000000000000000000000000008121b242b3136383939393939393939392c29231d150d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c161b1f252a2d2e31343738393939383735322f2e2b26201d19130c151d23282c2d32353839393838363432312e29231b1309000000000007111a232a313538393939393939393433302b241d140b01000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a1005000000030d18212931363a3b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3a342d251b1107000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f272b3035393a3f42413d3730271e1409000000000a151e262e34384646464646464646403f3b362e261c120800000000040f19222b32383b3c464646464646463e3d3a342d241b110600000009131d272f373d40423f3a3936302c27201d18130f0a0400000000000000000000000000000000000000000000000000000000000000000000000000040f19242d353d424546464646464646464638342f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a111720272b31363a3b3e4144444546464544423f3c3b37322c29241e191e272e34383a3e42454646454443413f3d3a342d251b1106000000030e19232c353c414546464646464646413f3c362f261d130800000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000009141f29333b4246484c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a463f372d23180d010000000000000000000000000000000000000000000000000000000000000000000000060c10151a1d24292c32383a4146474c4f4d49423930251b0f04000006111c2630383f4453535353535353534d4b4740382e24190e020000000a16202b343d434749535353535353534b4a453f362d22180c0100040f1a252f3941484d4e4c4746413a38322c29241d1a15100c0700000000000000000000000000000000000000000000000000000000000000000000000915202b353f474e5253535353535353535345403931271d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c232832373b4246484b4e505152535252504e4c4847433c39352f28222b30394045464b4f5152535251504e4b4a463f372d23180d01000009141f2a353e474d51535353535353534e4c4741382f241a0e0300000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c100400020e1a26313b454d535559595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959585651493f34291e1206000000000000000000000000000000000000000000000000000000000000000002090e11171c1f262b2f35393d43474c5254595c59534b42372c20150900000c17232e38424a505f606060606060605a58524a40362a1f13070000030f1b27323d464e545660606060606060585650483f34291d1105000814202c37414b53595b5954524c48433d39352f2b261f1c18120e090300000000000000000000000000000000000000000000000000000000000000000e1a26313d4751595e5f606060606060605f514b43392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151e262e343d43474d5354585b5d5e5f5f5f5e5d5b5955534e4745413a3129343c424b5153585c5e5f5f5f5e5d5a585651493f34291d120600010d1925313c4750585e5f6060606060605a58524a41362b1f14080000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d2014080005121e2a36424d575f616565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565625b51463a2e221609000000000000000000000000000000000000000000000000000000000001040b1014191c23282c3137394045474e54565e616668655d53493d3125190c0003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a000006131f2b38434e5860626c6c6c6c6c6c6c65625a50453a2e211509000c1825313d48535d656866615e56544f4745403a37312c28231c1a140f0b06000000000000000000000000000000000000000000000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c5c554b4034291c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2730383f444e54575e6164676a6b6c6c6c6b6a6865625f5854524c433f353c464e545c6065686b6c6c6b6b696765625b51463a2e2215090004101d2935414d58626a6c6c6c6c6c6c6c67645c52473c3024170b0000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d62564a3e3125180b00000000000000000000000000000000000000000000000000000001080d11161c1f252a2e34383c42474b5153586062686d72756f65594d4134281b0e0006121f2c3844505c667679797979797979736e63584b3f3226190c00000815222e3b4754606a6f79797979797979716c62564a3d3124170b000e1b2734404d59656f75726d6863605953514b47433c38342e2a251f1b17110d0802000000000000000000000000000000000000000000000000000000121f2c3845525e6a75797979797979797976675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d273139424a50586062696e71747777787979787775726f6a66605d56504540454e5860666d717578797978777674726d62564a3d3124180b0005121f2b3845515e6a7479797979797979746e64584c3f33261a0d0000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7265584c3f3225190c00000000000000000000000000000000000000000000000000040a0f13191d20272c3036383f44464e53555d60656a6f747a7f8175685c4f4235291c0f000713202d3a4653606d78868686868686868073665a4d4033271a0d00000916232f3c4956626f7c868686868686867e7165584b3e3225180b000f1b2835424e5b6875817f7a756f6b65605d55534e4644403936302b27221b19130f0a040000000000000000000000000000000000000000000000000013202c3946535f6c798786868686868686796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18242f39434b545c606a6f757b7e8183848586858583817f7c78726d68625a514b4d57606a6f797e82848586858483817f7265584b3f3225180c000613202c3946535f6c79868686868686868074675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c86796c5f5346392c20130000000000000000000000000000000000000000000001070c10151b1e24292c33383b42464a5053575f62676d71777c81868c83776a5d5144372a1e11000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000916232f3c4956626f7c8993939393938b7e7165584b3e3225180b00101d2a3743505d6a76838c86817c77726d67625f5853514a46423b37332d29241e1b15100c07010000000000000000000000000000000000000000000013202c3946535f6c7986929393939393867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2935404b555d666d747c82878b8e909192929291908e8c88847f7a716d605d55535f696f7c848b8f9192929291908d86796c605346392d2013000613202c3946535f6c798692939393938d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989286796c5f5346392c2013000000000000000000000000000000000000000003090e12181c1f262b2f35393d44484d52545c60646a6e74797e83898e929084776a5d5144372a1e11000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000916232f3c4956626f7c89959f9f9f988b7e7165584b3e3225180b00101d2a3743505d6a768390928e89837e7a746f6a64605c54524d46443f3835302b271f1d18120e0903000000000000000000000000000000000000000013202c3946535f6c7986929f9f9f9f93867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303845515d676d7880898f93999a9d9e9f9f9f9e9d9b9896918c857e756d675d58626e7b8691969b9e9f9f9e9e9c9386796c605346392d2013000613202c3946535f6c7986929f9f9f9a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9286796c5f5346392c2013000000000000000000000000000000000000060b0f141a1d23292c32373a4145474f54565e61666d71767b80858b90959b9d9084776a5d5144372a1e11000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2aca4988b7e7165584b3e3225180b00101d2a3743505d6a7683909d9b95908b85807b76716d66615e5753504945413a37322c29241d1a15100b0600000000000000000000000000000000000013202c3946535f6c7986929facaca093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3842505a606d79828d929b9fa4ababa39f9d9c9b9c9d9fa19e97928b82796d685f6a76828f98a1a8aaa39f9995949386796c605346392d2013000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9e9184776b5e5144382b1e110613202c3946535f6c7986929facada094877a6d6154473a2e211407111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939286796c5f5346392c201300000000000000000000000000000002080d11171c1f262a2f34383c43474c5254596063696e73797d82888d92979da0a79d9084776a5d5144372a1e11000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00101d2a3743505d6a7683909da7a09d98928d88837e79736e6963605b53524c47433c38352f2b261f1c17110e080200000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616c74818e949da4aca7a09d9992908f8f8f9192999a9e9f948f837a6d666f7c88949faaaea398928c88878886796c605346392d2013000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5346392c201300000000000000000000000001040a0f13191c22282b3136394045474e53565d60656b70757b80848a8f949a9fa2a7a09d979083776a5d5144372a1e11000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00101d2a3743505d6a768390979d9fa7a29f9a94908a85807b75706c65605d56544e4745403937312b28231c1914100b040100000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66717e8b939ea6aea59d95908a86838282838486898d92979f959083786d73808d99a6b0a89f9286807c7a7b7d7063574a3d3024170a000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746a5e5145382b1f120000000000000000000001070d11161b1e252a2d33383b42464b5153585f62686d72777d82868c91969c9fa6a39f9b95908b857f7366594c403326190d000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000c1926323f4c5965727f858b90959b9fa3a69f9c97918c87827d78726d6862605853514b47423c38342e2a251e1b16110d08010000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7884919ea5afa69d938e837d797776757677797c80858c9298958e81747683909ca9aca0958a7e736f6e6e706b6155483c2f231609000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a62584d4135291d100000000000000000040a0f13181d20272c3036383f44464d53555c60646a6f747a7f84898f92999ea1a9a19e99928e89837e79736d63574b3e3225180c000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000c1825313e4a57636d72797e83898e92999ea1a8a19e99928f89847f7a746f6a65605d55534d46443f3836302c27201d19130f0a04000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a96a0acac9f948e8179716d67696869676d70747a7f869095938a7e7885929fabaa9d9184776c6261616361594f44382c201407000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a0004101c28333e474f5557606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5e5850473c3125190d000000000000070c10151b1d24292c32383a41464a5053575f61676d71767c81868b91959b9fa3a69f9c96918c86817c77716d67635b51463b2f22160a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000916222e3a46515b63676d71777c81868c91969c9fa6a39f9b96918c86817c77716d67615f5753504a46413b38322c29241e1b15100c0700000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576875818e9ba8afa49a8f82786d66605d555c555c6063676d727b838f9391857b8797a2ada79a8d8074675a545557554f473e33281c1004000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a00000b16212c353e44484a5353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353514d473e352a1f140900000000030b12181c1f262b2f35393d43484c52545b6063696e73797e83888e92989da0a8a29f9a94908a847f7a756f6b65605d55514940352a1e1206000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0006121e2a353f4951555c60646a6f757a7f848a8f949a9fa2a8a09e98928e88837e79736e6964605c54524c48443d39352f2b261f1c18120b030000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697885919eabac9f93877c6f665c54514b4f4b5153555d60696e79818f949083909da9b3a4988b7e7165584b484a48443e352c21160b00000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d201408000005101a232c33383c3d464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464645413c352c23190e03000000030c151c23282c31373a4045474f54565e61666c70767b80858b90959a9fa2a8a09e98928e88837e79736e6863605953514b4340372e23190d02000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00010d18232d373f434b5153586062686d73787d82888d92989da0a8a29f9b95908b85807b76706d66615e56544f4745413a37312c28231d150c0300000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8797a1adaa9d9083776a5f544b4540424045474b51575f676d78828f9590959fabb0a3968a7d7063574a3d3d3c38332c231a100500000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c100400000008111a21282c2f3039393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835312a231a1107000000000b151e272e34383c43474b5153596063686d72787d82878d92979d9fa7a49f9c96918b86817c76716d66615e56544f47454039312e251c120700000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000007111c252d31394045474e54565e61666d70767b81858b91959b9fa3a79f9d97928d87827d78736e6863605954514c47433c38342e271e150b00000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a9b3a79a8d817467584e4239352f34383a40454d555c666d7a85919d9fa7b1afa396897c706356493d302f2c28211a11080000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000000000810161c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f1911080000000007121c2730394044464e53555d60656b6f757a7f848a8f939a9ea1a9a29e99938f89847f7a746f6a64605c54524c48433d39352f271f1c130a0000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000a131c1f272f34383d43474c52545c60646a6e747a7f84898f92999ea1a9a29f9a938f8a847f7a75706b65605d55534e4645403930271d1207000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8996a3b0a6998c7f7366594c402f2924292c2f353b434b545d68707d8a959fabb7afa396897c706356493d3023201c161008000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a1005000000000000050b1014161720202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1d19140e0700000000000c18232e39424a5153585f62676d72777c81868c91969c9fa4a7a09d97928d87827d78726d68625f5853504a46413b38322c29241d150d0a010000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000010a0d151d23292c32383a41464a5053585f62676d72777d82878d92979d9fa7a49f9c96918c86827c77726d67625f5853514b42392e23180c000013202c3946535f6c7986929facada093867a6d6053473a2d20140b0b0b0b0b0b0b0b0b0a0a090706040100000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f2e23181c1f24293139424c56616c7683909da9b3afa396897c706356493d302316100b0500000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a11080000000000000000000407090a131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d0903000000000004101c2834404a545c60646a6f747a7e83898e92999ea1a8a39f9b95908b85807b75706c65605d56534e46443f3836302c271f1d18120b0300000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000030b12181c1f272b3036383f44464e53555d60656b70757b80858b90959b9fa3a8a19e99928e89847f7a746f6a64605c544b4034281c10040013202c3946535f6c7986929facada093867a6d6053473a2d20181818181818181818171716151413110d08070502000000000000000000000000000000000000000a1723303d4a5663707d8996abb5a6998d807366544a403428211e1a181f27303a44505a64707d8a97a2adafa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e0100000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c171008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844515c666d71767c81858b90959b9fa3a8a19e99928e89837e79736e6963605b53524c47433c38342e2a251e1b16100c07010000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000001070c10161b1e252a2e34383c43474b5154596063696e73797e83888e92989ea1a8a39f9b95918b85817c76716d665c5145382c1f13060013202c3946535f6c7986929facada093867a6d6053473a2d242424242424242424242424232221201d191514120e090300000000000000000000000000000000000915222f3c4855626f7b8899a3afa89b8f8275665c51443a322d2b2627272628323e4653606d7985929fabafa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b05000000000000000000000000000000060606060606060503000000020608080c0f111213131312100e0b0807050200000000000000000000000000000000000000000000000000000000000713202d3a4653606d787e83888d92989da0a7a69f9c96918c86817c77716d67615f5753504945413a37312c28231c19140f0a040000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000040a0f13191c23282b31373a4145474f54575e61676d71767c81868c91969c9fa4a7a09d98928e88837e796d6053463a2d2013070013202c3946535f6c7986929facada093867a6d6053473a31313131313131313131313131302f2d2c292422211e1a140f0b060000000000000000000000000000000714202d3a4753606d7a86929facab9e9285796d60564c443d3a373134333332323845515c6675828f9ca8afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a08040000000000000000000000000105090b0b13131313131312120f0c04090e121415191b1d1f1f201f1f1d1b181414110e0802000000000000000000000000000000000000000000000000000000101d293643505c6976828a90949a9fa2aaa29f9a948f8a847f7a756f6a64605d55534d46443f38352f2b261f1c17110e080200000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000002080d11171c1f262b2f35393d44484d53555c60646a6f747a7f848a8f939a9fa2aaa29f9a94908a8376695d5043362a1d100013202c3946535f6c7986929facada093867a6d6053473e3e3e3e3e3e3e3e3e3e3e3e3e3d3d3c3a39352f2e2d2a261f1c17110a020000000000000000000000000006131f2c3945515d677783909dabada1978a7e71685e564f484742424140403f3f3f404b546673808c99a6afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517182020202020201f1e1c1810151a1e212225282a2b2c2d2c2b2a282521201e19140f0a0400000000000000000000000000000000000000000000000000101d2a3743505d6a7683909c9fa6a8a09d98928d88837d78736d6862605853514b46423b37332d29241e1b15100c0600000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000060b10151a1d24292c33383b42464b5153586062686d72787d82878d92989da0a7a69f9c9084776a5d5144372a1e110013202c3946535f6c7986929facada093867a6d60534b4b4b4b4b4b4b4b4b4b4b4b4b4a4a49484745413f3b3a36312b28221c140b0701000000000000000000000004101d2935404b5566737f8c99a3aea99e91847a6d68615955534d4f4e4d4c4c4c4b4b4c5865727f8b98a5afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0d0f11121313131212100e0c09060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d2124252d2d2d2d2d2d2c2b28241c1f262b2e2f32353738393939383735312e2d2a251e1b150d07010000000000000000000000000000000000000000000000101d2a3743505d6a7683909da9a49c96918b85817c76716d66615e56544e4745403936312b27221b19130f0a03000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000030a0f13181d20272c3136394045464e54565e61666c70767b80858b90959ca4aa9d9084776a5d5144372a1e110013202c3946535f6c7986929facada093867a6d6057575757575757575757575757575757565554514c4c4846423b38332d261d18120b0300000000000000000000000c18242f3b4854616e7b86929fa8ada19690827a706b65615f575c5a5a5959585858585865717e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131416191c1d1f1f20201f1e1d1b191613120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292e313239393939393939373430282c31373a3b3f4244454646464543413e3b3936302b272018130c0400000000000000000000000000000000000000000000101d2a3743505d6a7683909da99c928d847f7a746f6a64605c54524c48433d38352f2a261f1b17110d08010000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000001070d11161c1f252a2e34383c43474c52545b6064696e747a7e838c929caa9d9084776a5d5144372a1e110013202c3946535f6c7986929facada093867a6d64646464646464646464646464646464646362605d555855534d46443f382f29231d150d05000000000000000000000714202d3a46525e6974808d96a1a9a89f9590847d77726e696a6867666665656565646465717e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000000000000040a0f12181c1f202326282a2b2c2c2c2c2b2a282523201f1c17110f0a0300000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d343a3d3e4646464646464544403b34383c4247484c4e505252535252504e4b4746413b373229241d160d05000000000000000000000000000000000000000000101d2a3743505d6a7683909da69a8d8079726d68625f5853504a46413b38322c29241d1a150f0b060000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000000000000060b0f141a1d24292c32383a41464a5053585f62676d7279808c99a69d9084776a5d5144372a1e110013202c3946535f6c7986929facada0938679717171717171717171717171717171717170706f6d676865615f5753504a423d342f271f170e0500000000000000000005121e2a36424d57606d79849197a1a9a79f969189837f7b78767574737372727271717171717e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23292c2d303335373839393939383635322f2d2b28221c1b150e0903000000000000000000000000000000000000000000000000000000000000000000000000010c18222d363f454a4b53535353535352504c454044464e5355585b5d5e5f605f5e5d5b5854524c47433d352f281f170f050000000000000000000000000000000000000000101d2a3743505d6a7683909da99c928d847f7a746f6a64605c54524d48443d39352f2b261f1c17110d08020000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000002080d11171c1f262a2f35383d43484c52545c60646a6e747a7e838c929caa9d9084776a5d5144372a1e110013202c3946535f6c7986929facb1a4978b7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7d7c7b7a7875726e6964605b544f454039312920170e050000000000000000020e1a25303b45515d676f7c8591979ea5a8a09e95908b8885838281807f7f7f7e7e7e7e7d7d808d9aa7afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e010000000000000000000000000000000000000000000000000000000000000000000000060b151b21272c2f34383a3d40424445464646454543413f3c3938332d2b26201a150b06000000000000000000000000000000000000000000000000000000000000000000000005111d29343f485056586060606060605f5d574f4a5153575f6265686a6b6c6c6c6b6a6864615e56544e45403a312921170f0500000000000000000000000000000000000000101d2a3743505d6a7683909da9a49c96918b86817c76716d66615e56544f4745403937312b28221c19130f0a04000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000040a0f13191c22282b3136394045474e54565e61666d70767b80858b90959ca4aa9d9084776a5d5144372a1e110013202c3946535f6c7986929facb9a69a908b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89888784827f7b76716c666059514b433a322920160c03000000000000000009141f2935414b555f6a6f7c858f939c9fa4a79f9d989892908f8d8d8c8c8b8b8b8b8a8a8a8d929da9afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79a8d8174675a4e4134271b0e01000000000000000000000000000000000000000000000000000000000000000000020a111720262b323839404547494c4f50525253535251504e4c4946443f3837312b262017110a020000000000000000000000000000000000000000000000000000000000000000000915212e3a45505a62656c6c6c6c6c6c6c696157545c60646a6e72757778797979787674716e68626058514b433b332921170d03000000000000000000000000000000000000101d2a3743505d6a7683909c9fa6a8a09d98928d88837e79736e6863605953514b47423c38332d2a251e1b15100c0701000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000070c10151b1e24292d33383b42464b5153586062686d73787d82888d92989da0a7a69f9c9084776a5d5144372a1e110013202c3946535f6c7986929facb9aca29a97979797979797979797979797979797979797969596918f8b88837e78706b605c554c443a32281e150a0000000000000000020d18242f3a434e585f6a6f7a82898f93999c9fa2aaa29f9d9b9a999998989898979797979a9da4aeafa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca79b8e8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000000000000000030b141c222832373d43484b515356595b5d5e5f5f5f5f5e5d5b585653504a47433c373127221b140b0300000000000000000000000000000000000000000000000000000000000000000b1724313d4a56626c71797979797979787369585f666d71777b7f8183858586858583817e7a756f6a605d554d453b33291f150b010000000000000000000000000000000000101c2936434f5c6976828a8f949a9fa2a9a29f9a94908a84807b756f6b65605d55534d46443f3836302b271f1c18120e090300000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000003090e12181c1f262b3035383f44464d53555d60656a6f757a7f848a8f949a9fa2aaa29f9a948f8a8276695d5043362a1d100013202c3946535f6c7986929facb9b4aca6a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3a3a8a19e9b9894908a847d746d675e564c443a30261c1106000000000000000007131d28313c464e585f686d757c82878b8f929897999a9b9c9d9d9d9e9e9e9e9f9f9f9fa3abacb5afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca89b8e8275685b4f4235281c090000000000000000000000000000000000000000000000000000000000000000030d151d262d333c43474f54555c606366686a6b6c6c6c6c6b69686562605b54534e47423c332d261d150d03000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e868686868686857866616a6f787e83888b8e909192939291908e8b86827c746d675e574d453b31271d120700000000000000000000000000000000000713202d3a4653606d787d82888d92979da0a7a69f9c97918c86817c77726d67625f5753504a46413a37322c29231d1a140f0b060000000000000000000713202d3a4653606d798693a0aca69a8d8073675a4d4034271a0700000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000001040b10141a1d23282c32373a41464a5053575f61676d71777c81868c91969c9fa6a7a09d98928d88837e786d6053463a2d2013070013202c3946535f6c7986929facb9afa7a2a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa0a0a1a2a5a8aba8a69f9c95918981796d685e564c42382e23170c0300000000000000010c161f2a343c464e565e616b6f757b7f8285888a8c8d8f8f9090919191919292929292999ba3acafa396897c706356493d3023160a000000000000000613202c3946535f6c7986929faca89c8f8275695c4f4230251a0e02000000000000000000000000000000000000000000000000000000000000030c151f272f383f444e54596063676d707375777879797978787674726f6c66625f58534d443f382f271f150d030000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a939393939786796d6c707c838b9095989b9d9e9f9f9f9e9d9b99928f8781796e695e574d43392f24180c030000000000000000000000000000000006121f2c3844505c666d71767b80858b90959b9fa3a9a19e99928e89837e79746e6964605b54524c47433d38342f2a251f1b17110d08010000000000000713202d3a4653606d798693a0aca79a8e8174675b4e412e23180c00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000001080d11161c1f252a2e34383c43474c52545b6063696e73797e83898e92999ea1a8a39f9b95908b85807b76716d665c5144382c1f12060013202c3946535f6c7986929facb9a79d959393939393939393939393939393939393949496989b9fa2a9aba7a09d938e837a6d685e544a3f342820150a0000000000000000040d18222a343c444c52596063696e7276797b7d7f81828383848484848585858585868b909ba7afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929facaa9d9083776a574d42362a1e12050000000000000000000000000000000000000000000000000000000000000b151e273139424a50585f626b6f75797d7f828385858686858483817f7c79746f6a625f575049413931271f150b0100000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d89969f9fa994877a6d707e8690959da09e9c9b9a9b9c9ea1a9aba39f9a938e847b6e695e554b4035292015090000000000000000000000000000000003101c28343f4a545c60646a6e74797e83898e92989ea0a8a39f9b95908b85807b76706c66615e56544e4745403936312b27221b19130c0400000000000713202d3a4653606d798693a0aca89b8f827568544b4034281c1004000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000040c13191d20272c3036394045464e54565d61666c70757b80858b90959b9fa3a8a19e99928e89837e7a746e6a64605c544a4034281c10040013202c3946535f6c7986929facb9a2958b86868686868686868686868686868686868788898c8e92979da0a8aca59d9590837a6d665c50443c31261a0f0300000000000000050e171e252a323a41464f54575e6165666d6f717374757676777777787878787879797e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929facac9f928579695e52463a2d201406000000000000000000000000000000000000000000000000000000000007121d273039434b545b606a6f767c8185898c8e90919292929291908e8b8985817c756e69605b534b433931271d120700000000000000000000000000000000000000000000000000000000000a1623303d495663707c8996a3aca195887b707e8792989e9896918f8e8d8e8f91979b9fa4aca49f9691847b6e675d51453c31261a0f02000000000000000000000000000000000c17232e38424a5053575f62676d71777c81868c91969c9fa4a7a09d97928d87827d78726d6862605853514b46423b37332d29241e160d0a010000000713202d3a4653606d798693a0aca99d908376665c5145382c1f130700091623303c4956636f7c8996a2afa4988b7e7165584b3e3225180b000000010a0d161e24292c33383b42464b5153585f62686d72787d82878d92979da0a7a49f9c96918c86817c77726d67625f5853514a42392e23180c000013202c3946535f6c7986929facada0938679797979797979797979797979797979797a7b7c7f81858b91969fa4aca79f959082786d60584e43372b1f1409000000000000020c1720293036393a3e3f44484d5354545c606264666768696a6a6a6b6b6b6b6c6c6c717e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929facaea298877b6e6154483b2d22170b06070808080602000000000000000000000000000000000000000000040d18232e39434b555d666c737c83898e9298999b9d9e9f9f9f9f9e9c9b9897918d88827b736c655d554b43392f24180e0500000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa295897c7c86929996918c8784828181818285898e939aa1a9a8a0969083796d60584e43372b1f14090000000000000000000000000000000006111c2630383f44464e53555d60656a6f747a7f848a8f93999ea1a9a29f9a938f8a847f7a746f6a64605c55534d46443f38352f28201c140a0000000713202d3a4653606d798693a0acac9f9286796d6053463a2e23180d060a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b0000000a131c1f282f35393d44484d52545c60646a6f747a7f848a8f939a9fa2a9a19e9a938f8a847f7a756f6b65605d55534e4644403930271c1207000013202c3946535f6c7986929facada093867a6d6c6c6c6c6c6c6c6c6c6c6c6c6c666d6d6e6f7275797e848d939aa4afa79f948d80736a5f53473b31261a0e02000000000008131e29323a4146474b4c4d4e4f51524a50535557595a5c5c5d5d5e5e5e5e5f5f5f65717e8b98a4afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929facb4aa978a7d7064544a3f33281c131313151514120f0a03000000000000000000000000000000000000010c161f2834404b555d676d78808790949b9fa2a9a29e9c9b9a9a9b9d9fa3a9a19e9a948f877f776d675d554b40352920170d020000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8995a2afa396897d839098938d847f7b777574747476797c81889197a1a9a8a0958d80736a5f53473b30251a0e02000000000000000000000000000000000a151e262e34383c42474b5153586062686d72787d82878d92979c9fa6a49f9c96918c86817c76716d67615e5753504945413a322e261c120700000713202d3a4653606d798693a0acaea398897c6f62544b4034281f1612101824313e4b5764717e8a97a4b1a4978a7e7164574b3e3124180b000007121c252e313a4145474f54575e61666d71767c81868c91969c9fa4a79f9d97928d87827d78726d6863605953514b47433c38342e271e150b00000013202c3946535f6c7986929facada093867a6d606060606060606060606060605c6061616365676d71798088939fa5afa69f92877c6f62574d42362a1e120500000000010d1925303a444c525457595a5b5c5d5e5b5953484a4c4e4f5050515151515252525965727f8c98a5afa396897c706356493d3023160a000000000000000613202c3946535f6c7986929facb4a79a8e8174665b5044382d22201f202222211f1a150e06000000000000000000000000000000000008131e28313a45515c676d79828d92999fa6a39f9a97928f8e8d8e8e9092989b9fa3a69e99928c82796d675d51453f32291e14080000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa89c8f828f9593888079726e6969686768656c6f747d859197a2ada79f92877c6e62574d42362a1e120500000000000000000000000000000000030c151c23282c3137394045474e54565e61666c70757b80858a90949a9fa2a8a19e98928e89837e79736e6963605b53524c4440382e24190e02000713202d3a4653606d798693a0acb4aa998d8073665c51453b3128201f1c1e26323f4c5965727f8c98a5b0a3968a7d7063574a3d3024170a00020d19232e3740434c5154596063696e73797e83888e92989ea0a8a29f9a95908b85807b76706c66615e56544f4745403a37312c28231c150c0300000013202c3946535f6c7986929facada093867a6d6053535353535353535353534a5153545556555d60676d747f8c939daaaea3998e8275695f53463a2d2114070000000005111d2a36414c565e6164656768696a6b68655d534840414243434444444545454d596673808c99a6afa295897c6f6256493c2f231609000000000000000613202c3946535f6c7986929facb8ab9e9185786c60544a3f332d2c2c2d2f2f2e2b2620180f06000000000000000000000000000000010d19242f3a43505a606d79828f949fa3a7a099928e898583818181828386898e92999fa7a39f948f82796d605b51443b3025190e0200000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaa9e948f9493887e736d67615e575b5a535b60626b6f7c85929ea6afa3998e8175695e52463a2d2014080000000000000000000000000000000000030a11171c1f262b2f35393d43474c52545b6063696e73797e83888e92989da0a7a39f9b95908b85807b75706c65605d56524a40352a1f1307000713202d3a4653606d798693a0acb8ab9e9285796d60574d433a322d2c282a2d36424d576774818e9aa7b3aa95897c6f6256493c2f2316090006121e2a35404951555d60656b70757b80858a90959a9fa2a8a09d98928e88837e79736e6963605b54524c48433d39352f2b261f1c18120b030000000013202c3946535f6c7986929facada093867a6d6053474646464646464646464044464748494b51555d606d74818e98a2aeab9f93877b6e6155483b2f24180d010000000713202d3946525e686d71727374767778756f65594d3d323536373737383835404b556774818e9aa7b2a995887b6e6255483b2f221508000000000000000613202c3946535f6c7986929facb4aba1978a7e71665b50443f3a39383a3b3b3a37312a22180e03000000000000000000000000000004111d2935414c56616c74818e949ea6a69f959087817c79767474747577797d818790959ea5a69e948e81756d62564c41362a1e140800000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb0a69e9c958c80736c605c55524d4e4e49505359606a717e8a949fabab9f92877b6e6154483b3025190e02000000000000000000000000000000000000060c10151a1d24292c32383a41464a5053575e61666d71767c81868b91959b9fa3a79f9d97928d87827d78726d68635c52473b2f23170a000713202d3a4653606d798693a0acb9ada1978b7e71695e554c443e3a3834363a3d46535e697784909daaaea298877a6e6154473b2e211408000a16232f3b46515b63676d72777d82878d92979d9fa7a39f9b96918b86817c76716d67615f5753504a46413a38322c29241d1a15100c0700000000000013202c3946535f6c7986929facada093867a6d6053473a393939393939392e34383a3a3b3c40454b515b616d7a86929facafa4998c7f7366554b4035291d10040000000714212e3a4754616d7a7e7f8081828485817568584e43372e2c2823282c2f3945515d677783909daaada196877a6d6054473a2d211407000000000000000613202c3946535f6c7986929facaea399929183786c6059504947454546484847433c342a20150a00000000000000000000000000000613202c3945525d68717e8a939da6a89f948f837c746f6c6668676768666d70757c838f939ea7a69e938b7f72685e52463b3025190e02000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb8b0a89d9083786d605a514b464241413f44464f58616c76828f9ca9afa3998c7f7266564c41362a1e1105000000000000000000000000000000000000000003090e12181d1f272b3036383f44464d53545c60646a6f747a7f84898e92999ea1a8a19e99938f89847f7a736e63574b3f3226190c000713202d3a4653606d798693a0acb1a7a09d92857b6e675d56504846443f4246474f58616e7b8795a0acab9f928578685e5246392d201407000c1925323e4b57636d737a7f84898f92999ea1a9a19e99928f89847f7a746f6a64605c55534d46443f3836302c27201d18130f0a04000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2d2d2d2d2d2d23282c2d2e2e2f35394046525e6873808d99a9b3ab9d908377675d5145392c2013060000000815212e3b4854616e7b878c8d8e8f909184786a6054473f3a38342e34383a404b55606d7a86929facab9e918578675d5145392c201306000000000000000613202c3946535f6c7986929facac9f9286928c7f736b605b53535151535555534e463c31261a0f0200000000000000000000000004111d2935414c55606d7a85929ea5aca0968f82796e6a62605b545a5b545c60636a6e78818f959faba59f92857a6e61564c41362a1e1105000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb9ada1968a7d71665c5045403936302d33373d46505a63707d8a97a1adab9d908377685e5246392d2014070000000000000000000000000000000000000000000001070c10161b1e252a2d33383b42464b5153585f62676d72777c82868c91969c9fa4a49f9c96918b868073665a4d4033271a0d000713202d3a4653606d798693a0acaca09590959082796d68615a5553504a4d525459606a74808d9aa7b1a99c8f827669564d41362a1e1105000d192633404c5966737f868b91959b9fa3a69f9c97918c86827d78726d68625f5853514b46423b38332d2a251e1b16110d07010000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d202020202020181c1f20212224292f35414c56626f7c8897a2adac9f9286796d6053473a2d2014070000000714212d3a46535e697884919a9b9c9d96897c6f625a504a464440434044464b515c67717e8b98a3aeaa9b8f827568554b4135291d11040000000000000005121f2b3744505b657986939faca79a8d818d93877d726c6562605d5c6062625f584e43372b1f12060000000000000000000000000613202c3945515d6773808d97a1ada69e91847a6d675f5853504a4e4e4b5153585f666d79839099a3ada2978d8174685e5246392d201409000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb8ab9e9184786c60544a3f342f2a2522272b333e4653606c7885929eabaca095877a6e6154473b2e21140800000000000000000000000000000000000000000000000000040a0f13191c22282b3136394045464e53555d60656b70757b7f848a8f939a9fa2a8a09e989083776a5d5144372a1e11000713202d3a4653606d798693a0acaa9d9084909490827a716c6562605c54565e61646b707c87929facb0a6998c7f7266594c3f3025190e0200101d2a3743505d6a768390989da0a8a29f9a948f8a84807b75706c65605d56544e4745403936312b28221c19130f0a040100000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014131313130c1012131415181d25303a4653606c7985929fabafa399897c6f6256493c2f23160900000005121e2a36424d576774818e9aa6a9a89b8e81756c605c5453514a504a5153555d606d7983919daaaea2988b7e7165584b3e2f24180d01000000000000000613202d394653606c78869aa4afa396897d869292877f78726e6d67676d6e6e6a5f53473a2e2114080000000000000000000000000714212d3a4754606d7a85929fa9aa9e94897d70685d554e46443f41414045464e545c676f7c87929faca99f92867a6e6154473c31261a0e020000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb6ac9a8d8074665b5042382e231d1a171b212b3844505b6674818e9ba7b1a7978a7e7164574b3e3124180700000000000000000000000000000000000000000000000000000002080d11171c1f252a2e34383c43474c5154596063686e73797d82878d92979da0a79d9084776a5d5144372a1e11000713202d3a4653606d798693a0aca396897d85929490847d76726e6d666b6b696e71757d859299a3afac9f94887b6e6155483b2e2215080000101d2a3743505d6a7683909da7a09d98928d88837d79736e6963605b53524c47433c38342f2a261f1c17110d080200000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2014070606000004060707070c131f2b3844505b667683909ca9b5ab978a7e7164574b3e3124180b000000020e1a25313c4855626f7c88949faaaa9e938a7e726d6662605c545d545c6062676d75808d95a0aca99f92867a6d6154473a2e21140700000000000000000713202d3a4653606d798693a0b6a295887c818e99928c837f7b7a7979797b7c6e6255483b2f221508000000000000000000000005111e2a36424d5765727f8b98a2aea99c8f82756b60564c433c38332d2e34383c424b555f6a74818e9ba8aea3988c7f7266574d42372b1e12050000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afafa49a897d7063544a3f30261c120e0b0f1c28333f4a5465717e8b98abb5a69a8d8073675a4d402e23180c000000000000000000000000000000000000000000000000000000000000060b0f141a1d23282c32373a4145474f54565e61666d70767b80858b90959b9d9084776a5d5144372a1e11000714202d3a4753606d7a8693a0ada194887b7e8b9296918a837f7b79787778797a7d82889297a1abafa49a8f8276695f53473a2d2114080000101d2a3743505d6a7683909d9b95908b85807b76716d66615e5753504945413a37322c29231d1a140f0b0600000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000030f1c28333f4a546875828f9ba8b2a5988b7f7265584c3f3225190c000000000915212e3b47535f6a76828f98a2aea59f92877f78726f6d666a696a666d6f7379818d929da7aca2978d8074685d5246392d20130700000000000000000714202d3a4753606d7a8693a0ada194887b7c88949f95918c8886858586888073675a4d4034271a0d00000000000000000000000714202d3a46525e697683909daaada196897d7063594f433a312b282223282c3039434e58626f7c8895a0acaa9d908477695f53463a2d2114070000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afac9f93867a6d6054473a2d21150a01000b17222d3c4855626f7b8899a4afa99c8f837669554b4034281c10040000000000000000000000000000000000000000000000000000000000000003090e12181c1f262b2f35393d44484d52545c6064696e74797e83898e929084776a5d5144372a1e11000714212d3a4754606d7a8793a0ada194877b74818e949e95908c888685848585878a8f939aa1a9afa59f93877c6f62574d42372b1e12060000101d2a3743505d6a768390928e89837e79746e6a64605c54524d46443f38352f2b261f1c18120e0903000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201407000000000000000000000b17222d414e5b6774818e9aa7b2a5998c7f7266594c3f3326190c0000000006121f2b37434e58626f7c86929fa4aca399928b837f7b797777767777797c80858e939da4aea49a92857a6d61564c4135291d110500000000000000000714212d3a4754606d7a8793a0ada194877a76828f99a09d9895989292988d8073675a4d4034271a0d00000000000000000000000814212e3b4754616e7b87959fabab9e9184786c6053463d31281f1c17181c1f27313c47535f6a7784919daaaca095887b6e6155483b2e2215060000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaa9e918477675d5145392c20130300000613202d3a4653606d7986939facab9e918478675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000070c10151b1e24292c32383b41464a5053575f62676d71777c81868c83776a5d5144372a1e11000714212e3a4754616d7a8794a0b4ab94877a6d78828f939f9d989a939291919298979b9fa4acaba39f938d80736a6054453c31261a0e020000101d2a3743505d6a76838c86817c77716d67625f5853504a46423b37332d29241e1b15100c07010000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000000061b2834414e5b6774818e9aa7b2a6998c7f7366594c403326190d00000000030f1b26323c47535f6a717e8b939aa2aaa39f95918c8886848483838485898c92979ea5aaa39f93887d70685e52443a3024190d0100000000000000000814212e3b4754616e7a8794a1aca093877a6f7c87929fa5a5aaa29f9f9a8d8073675a4d4034271a0d00000000000000000000000b1824313e4b5764717e8a97a7b1a79a8e8174665b5044382b1f160f0b0c10151f2b37434e586773808d9aa6b1a7988b7e7165584b3e2d22170b0000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa89c8f827569554b4135291d1104000006131f2c3845515c677884919eabac9f9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d20272c3036383f44464d53555d60656a6f747a7f8175685b4f4235281c0f000814212e3b4754616e7a87949f9fa39986796d6d79818c92989fa29f9e9e9e9fa2aaa8a9aaa29f99928b81786d60584e43332a1f15090000000f1b2835424e5b6875817f7a756f6b65605d55534e46443f3836302b27221b19130f0a040000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140700000000000000000205101c2834404b556875828f9ba8b2a5988b7f7265584c3f3225190c00000000000a15202b37434e58616c727f8892989fa3a7a09d99999291909090919298999ea2a9a69f98928b7f726c61564c4132281e13080000000000000000000815222e3b4855616e7b88949f9fa39986796d73808c939fa2aaaaaba69a8d8073675a4d4034271a0d00000000000000000000010e1b2834414e5b6774818e9aa7b4aa978a7e7164544a3f3328190d040000040d1b26323d4a5764707d8a97aab4a79b8e81746853493f33271b0f0300000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa79a8d8174675a4e412f24180d01000004101c2834404b556a7683909da9afa49a887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000001080d11161b1f252a2e34383c42474b5153586062686d72756f65594d4134281b0e000815222e3b4855616e7b889393939392867966676d787f868d92989a9c9e9e9f9f9e9d9c9998928d877f746d665c50463d3221180e030000000e1b2734404d59656f75726d6863605953514b47433c38342e2a251f1b17110d080100000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d20140c0c0c0c0c0c0c0c090e1116202c3845515c677683909ca9b6ac978b7e7164584b3e3125180b0000000000040f1a26313c46505a636d727e868e92999da0a8aba39f9e9d9c9d9e9fa2aaaaa29f9b948f867e726d62594f443a3020160c020000000000000000000915222f3c4855626f7b8893939393928679666c77818c92989b9e9f9f9a8d8073675a4d4034271a0d0000000000000000000005111e2a36414c566a7683909da9aea298887b6e6155483b2d221708000000000a15212e3b4854616e7b8798a2aeaa9d908377655b5044372b1f120500000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa6998c807366594d4033261a07000000000c18232e424f5c6975828f9ca8b6ac95897c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000000000000000001040b1014191c23282c3137394045474e54565e616568655d53483d3125190c000916232f3c4956626f7c86868686868685786b5c666c727b80858a8d8f9192929291908f8c8a86807b726d605c544a3f342b200f06000000000c1825313d48535d656866615e56544f4745403937312c28231c1a140f0b0600000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d201919191919191919191a191e2028323a4653606d7986929facafa49a897c6f6356493c302316090000000000000a15202a343e48515b636c717b81878c919597999c9d9e9e9f9f9f9e9d9b9998928e89827b716c625b51473e32281e0e04000000000000000000000916222f3c4955626f7c86868686868685786c656c777f868b8e919292928d8073675a4d4034271a0d000000000000000000000713202d3946525e687885929fabac9f9285796c605346392d201306000000000714212d3a46535e697985929facac9f9285796c605346392d20130600000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c00000000071b2835424e5b6875818e9ba8b0a396897d7063564a3d3023170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e11171c1f262b2f35393d43474c5254595b59534b42372c201509000815222e3b4754606a6f797979797979787368545b60696e74797d808284858685858482807d7a746e69625b504a42382e22190f00000000000814202c37414b53595b5954524c48433d39352f2b261f1c17110e0903000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a2d2525252525252525252627252a2d323a444e5863707d8998a2aeac9f93867a6d6154473a2e211407000000000000030e18222d363f49515a61696e747b8084888b8d8f90919292929291908e8c8985817c766e69625a51493f352c20160c00000000000000000000000815222e3b4754606a767979797979797873695b656c727a7f8284858685837e7164574b3e3124180b000000000000000000000714212e3a4754616d7a8798a2aeaa9d918477665b5044382b1f12060000000005121e2a36424d576a7784919daaaea298877a6e6154473b2e21140800000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7e7265584b3f3225180c000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151a1d24292c32373a4146474c4f4d48423930251b0f040006131f2b37434e5860626c6c6c6c6c6c6b68615750575e61676d7073767778797978777673706d67615e5751443f3830261c10070000000000040f1a252f3941484d4e4c4746413a38322c29241d1a15100c06000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473a32323232323232323232333330363a3e444c565f6a75818e9baab4aa9d918477685d5246392d2013070000000000000006101b242e373f4850575e61696e73777b7e80828484858686858583827f7d79756f6b625f5750483f372d231a0e04000000000000000000000006131f2b37434e5860626c6c6c6c6c6c6c6961535b60686d72757778797876716c6155493d3023170a000000000000000000000915222f3c4855626f7b8895aab4a99c8f837669544a3f33281c0f0300000000020e1a2531434f5c6976828f9ca9b4aa95887b6f6255483c2f22150900000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f272b3035393a3f42413d3730271e14090000030f1b27323d464e54566060606060605f5c574f444d53555c606367696b6b6c6c6b6a696663605d55534d453f342e261e140a0000000000000009131d272f373d40423f3a3936302c27201d18120f09030000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6053473f3f3f3f3f3f3f3f3f3f3f3f404142464750565d686f7c87939facb0a69a8d807367564c4135291d1105000000000000000009121c252e363e454d52575f62666a6e71737577787879797978777573706d67636059534d453e362d251b1108000000000000000000000000030f1b27323c464e54556060606060605f5d574950565d6065686b6c6c6b6a64615a5045392d211408000000000000000000000a1723303d4a5663707d8996a3b0a89b8e8275685b4f422d22170b000000000000091c2835424f5b6875828e9ba8b0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10161b1e25292d2e323534312c251e150c020000000a16202b343d43474953535353535352504c453b42464b5153575a5c5e5f5f5f5e5d5c595754514c46423b3328231c140c0200000000000000020b151d252c313435332e2d2a251e1b16100d070100000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d60534c4c4c4c4c4c4c4c4c4c4c4c4c4d4e4d52545a61686d7a83909aa4afac9f94887c6f6255493c3024190d010000000000000000000a131c242c333b42464d5355575f626466696a6b6b6c6c6c6b6a686663605d55544f47423c332d241b130900000000000000000000000000000a15202b343c43474953535353535352514c3f444c5254585b5e5f5f5f5d575550483e33281d1105000000000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b060000000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4988b7e7165584b3e3225180b000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202126282825201b140c0300000000040f19222b32373b3c4646464646464544403a3136394045474a4d4f5152535252514f4d4a4745413a3631292117110a02000000000000000000030b131a202527282621201d19130f0a0401000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d6058585858585858585858585858595a5a565e61656c707a829095a0acafa49a8f82766a5f53473b2e1e130800000000000000000000010a121a212930363c4247484e5355585a5c5d5e5f5f5f5f5e5d5b595653514b48433d37312a211b1209010000000000000000000000000000040f19222b32373b3c464646464646454441333a4145474b4f51525352504b49453e362c22170c00000000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa5988b7f7265584c3f3225190c000000010e1b2834414e5b6774818e9aa7b0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314191c1b19150f090200000000000007101920272b2e2f3939393939393837342f252a2f34383a3d404344454646454443403d3a39352f2a251f170f0600000000000000000000000002090f14181b1b191413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867a6d656565656565656565656565656566666769696e72777d8590949fa7b1a79f93877c6f62584e43372b1f0c02000000000000000000000000080f171f252a31373a3c4247484b4d4f51515253535252504f4c4a4745403938322b2620180f09000000000000000000000000000000000007101920272b2e2f393939393939393835272f35393a3f4244454645433e3d39332c241a100600000000000000000000000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e0100000000010e1a2734414d5a6774808d9aa7b1a4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa6998c7f7366594c4033261906000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070c0f0e0c0904000000000000000000070f161b1f22232d2d2d2d2d2d2c2b28241a1d23292c2d3034363838393938373633302d2c29241e1a140d0500000000000000000000000000000004080c0e0f0c070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facada093867972727272727272727272727272727272737475787b7f838a91979fa6b0a79f958d80746a6054463c32261b0f0000000000000000000000000000050d141a1f262b2e31373a3b3e4042444545464646454442403d3a38352f2c27211a150e0600000000000000000000000000000000000000070f151b1f22222d2d2d2d2d2d2c2b281e24292c2d3235383939383731302d28221a12080000000000000000000000000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e0100000000010e1b2734414e5a6774818d9aa7b1a4978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa79a8d8074675a4d412e23170c000000030f1c2936424f5c6975828f9ca8afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315162020202020201f1e1c180e12181c1f202427292b2c2c2c2b2a29262421201d19130e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013202c3946535f6c7986929facb2a5988b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80818285878b90959ea1a9aea69f959083796d60584e43342a20150a00000000000000000000000000000002090e151a1e21262b2e2f31333637383839393938373533302d2c29241d1b160e0903000000000000000000000000000000000000000000040a0f1315162020202020201f1e1c13191d202125282b2c2c2c2a2423211d171008000000000000000000000000000a1724313d4a5764707d8a97a3b0a79a8e8174675b4e4134281b0e0100000000010e1b2834414e5b6774818e9aa7b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa89b8f827568544a3f34281c1003000004101d2935404b556a7683909da9b4aa95887b6e6255483b2f2215080000000000000000000000000000000000000000010507080b0e10111213131211100e0b080705010000000000000000000000000000000000000000000000000000000000000000000000000000000306080913131313131312110f0c01070c101314171a1c1e1f201f1f1e1c1a171413110d0801000000000000000000000000000000000000000000000000000000000000030608090b0d0f1112121313121211100e0c0a0706040100000000000000000000000000000000000000000013202c3946535f6c7986929facb9a79b918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8d8d8f9197989da0a7adaaa39f948f837a6d675c51463d3222180e04000000000000000000000000000000000003090e12151a1e21222527292a2b2c2c2c2c2b2a282623201f1d18120f0a040000000000000000000000000000000000000000000000000003060809131313131313121210080d111314181c1e1f201f1d181714110c0600000000000000000000000000000a1723303d4a5663707d8996a3b0a89b8e8175685b4e4235281b090000000000020f1b2835424e5b6875818e9ba8b0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaa9d908377665c5044382c1f1206000006131f2c3845515d677885919eabaea298877a6d6154473a2e21140700000000000000000000000000000000000003080d111414171a1c1e1f20201f1e1d1a171414110d08030000000000000000000000000000000000000000000000000000000000000000000000000000000000060606060606050503000000000406070a0d10111213131211100d0a07060401000000000000000000000000000000000000000000000000000000000003070a0f121515181a1c1e1e1f1f201f1f1e1d1b19161413110d08040000000000000000000000000000000000000013202c3946535f6c7986929facb9ada39b9898989898989898989898989898989899999a9c9ea1a9aaacaba39f98928c827a6d685e554b40342b21100700000000000000000000000000000000000000000206090e121415181a1c1e1e1f20201f1f1d1c19171413100c07010000000000000000000000000000000000000000000000000000000000000006060606060606050300010406070c0f11121312100b0a0805000000000000000000000000000000000916222f3c4955626f7c8895aab4a99c8f8276695c4f4330251a0e0200000000030f1c2936424f5c6975828f9ca8b5ab95897c6f6256493c2f23160900000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afac9f9286796d6053463a2d20130900000714202d3a4753606d7a86939facab9f928578685e5246392d20130700000000000000000000000000000000060b1014191e20212427292b2c2c2c2c2b2a272421201e19140f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151b1f21222527292a2b2c2c2d2c2b2b2a28262321201d1913100c07010000000000000000000000000000000013202c3946535f6c7986929facacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8aaa8a6a7a09d99928e867f786d685e564c43392e22190f000000000000000000000000000000000000000000000000020608080b0d0f11121213131312110f0d0a0706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b8798a3aeaa9d9084776a574d42362a1e12050000000005111d2935414c566a7783909daaafa399877b6e6154483b2e21150800000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaea398887c6f6255493c31251a0d06030615222f3c4855626f7c889aa4afaa9d9084776a564c4135291d11050000000000000000000000000000020a11171c1f252a2d2e3134363839393938373634312e2d2a251f1b17110a0200000000000000000000000000000000000000030613131313131313130d0c0a07020000000000000000000000000003060809131313131313130b0b09050100000000000000000000000000000000000000000000000000000000000000040b10161b1f22262b2e2f3233353738383939393837373532302d2c29241f1d18120b0600000000000000000000000000000013202c3946535f6c7986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9b999795908c86817b736d665e564c443a30271d10070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929facab9f928578695e52463a2d201407000000000713202d3946525d687885929eabac9f9286796d6053463a2d20130700000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb4aa988b7f7265574d42362a1f161210121c2834404a5465717e8b98acb6a89b8e8175685b4e423025190d0100000000000000000000000001070c141c23282b3036393b3e414344454646454443413e3b3936302b27221b140b0700000000000000000000000000000000060c101220202020202020201a1917130e0800000000000000000000040a0f13151620202020202020181715110c060000000000000000000000000000000000000000000000000000000000060c161b21272c2f31373a3c3e4042444545464645454443413f3d3a39352f2c29241d17110a020000000000000000000000000013202c3946535f6c7986929393939393939393939393939393939393939393939399929291908f8d8a87847f7b756e69605c544c443a32291e150b000000000000000000000000000000000000000000000000060b0e1111131313131313131308070502000000000000000000000105090b0c13131313131313130f0e0c08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667784909daaaea298877b6e6154483b2e21150a000000000714212e3a4754616d7a8797a1adaa9e918477665c5145382c1f130600000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb6a99c8f8376695e53463c3128201f1c1f232c3844515c6675818e9ba8b3a9988c7f7265594c3f32261908000000000000000000000000030b12181e262e34383b4146474a4d4f515253535251504d4a4746413b37332d261d18120b03000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a0200000000000000070f161b1f22232d2d2d2d2d2d2d2524211d1811090000000000000000000000000000000000000000000000000000030a111721272c32383b3c4347484b4d4f5151525253525251504e4c494745413a39352f28221c140b0600000000000000000000000013202c3946535f6c79878686868686868686868686868686868686868686868686868685858382807d7a77736e69615f57504a423a322920170c0300000000000000000000000000000000000000000000040b12171b1d1e20202020202020201514120e090300000000000000060c1115171820202020202020201b1b18140f0901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546875818e9ba8b3aa978a7d7064574a3d32271b0d04000001081623303d495663707c8996a9b3a89c8f827569544b4034281c100400000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb9ac9f93877b6e61584e433a312d2c282b2e343f4953606d7985929eabada197887c6f6255493c2f2216090000000000000000000000050d151d242930383f44464c5254575a5c5e5f5f5f5f5e5d5a5754524c46443f382f28231c150c0300000000000000000000030c151c23282c393939393939393933322f2a241c140a00000000000007101920272b2e2f3939393939393932312e29221b1209000000000000000000000000000000000000000000000000030c151c232832383d4348494e5355585a5c5d5e5f5f605f5e5e5d5b595654514c47454039332d261d1810080000000000000000000000121f2c3845525e6a7579797979797979797979797979797979797979797979797979797878777573716e6866615e57534d443f38302820170e0500000000000000000000000000000000000000000000060e161d23272a2b2d2d2d2d2d2d2d2d22211e1a140e0600000000000911181d2224252d2d2d2d2d2d2d2d282724201a130b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3f4b5865727e8b98a8b2a69a8d807367584e43372b1f15100c090e131e2a36414c5666727f8c99a5b3aa998c7f7366594c402e23180c0000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afbbafa4998d80746a5f554c433d3a383438393f44505b65717d8a97a2adab9e9285796c605346392d20130600000000000000000000050e161f272f353e424a5053565e616467696b6c6c6c6b6a696764615e56535049413d342e271e150c030000000000000000000a151e262e34384646464646464646403f3b362e261c120800000000040f19222b32383b3c464646464646463e3d3a342d241b110600000000000000000000000000000000000000000000030d151e262e343d44484f5456585f626566686a6b6b6c6c6c6b6a6a686563605d5553514b443f382f2a221a110800000000000000000000111d2a36424e59636a6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a686664615e5654534d46423c342e261e160e0500000000000000000000000000000000000000000000000e1820282e33363839393939393939392e2d2b261f180f0600000009121b23292e313239393939393939393534312c251d150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000615222f3c4855626f7b8896a0acaa9d9184776a6054473c31271f1c181b1a1e242d3946525e6876838f9ca9aea298897c706356493d302316070000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afb4aba39f92877c6e675d554f4846443f44464a5059606c7883909da9b1a79a8e8174665b5044382b1f1206000000000000000000040d162028313940454f545c6064686e7174767778797978777674716e6863605b534e44403930271e150c030000000000000006111c2630383f4453535353535353534d4b4740382e24190e020000000a16202b343d434749535353535353534b4a453f362d22180c010000000000000000000000000000000000000000020b151f2730383f444f54596063676a6f7173757778787979787877767472706d6764605d55504a423c342c231a10070000000000000000000e1a26313d4751595e5f6060606060606060606060606060606060606060606060605f5f5e5d5c5a5754524c4846423b373128231c140c040000000000000000000000000000000000000000000000060f202a32393f434446464646464646463b3a37312a21180e030006111b242d343a3d3f464646464646464642403d372f271d0b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a7784919eabaca095887c6f62584e4339312c282327262b2f35414c56616d7a86929facab9f9285796d6053463a2d2013070000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afaea39992999083796d6760595553504a5053545c606b727f8b959fabaca095897c6f63544a3f33281c0f030000000000000000010c161f28323a434b515961666d71767a7e808284858686858483807d7a76706c656058514a423930271e150a000000000000000c17232e38424a505f606060606060605a58524a40362a1f13070000030f1b27323d464e545660606060606060585650483f34291d110500000000000000000000000000000000000000000a141d273139424a505960636b6f74787b7e8082848485858685858483817f7c7a75716d67605b544e463e352c23190d0400000000000000000915202b353f474e5253535353535353535353535353535353535353535353535353535252504f4d4a4746413b3a36312b261f17110a020000000000000000000000000000000000000000000000030d1821323c444b4f5153535353535353534846423c332a1f1409010c18232d363f454a4b53535353535353534e4d4841392f1d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e586673808d99a3afa89b8e81756a5f554b433c38342e3431373a4145525d68737f8c99a3afa79b8e8175675c5145382c1f13060000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afac9f928692958f827a706b6562605c545b6062666d727d86929fa7b0a69d9083776b605442382d22170b00000000000000000008131e28313a444c555d606b70787e82868a8d8f919292929291908d8a87827d786f6a605c544a423930261c1106000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a000006131f2b38434e5860626c6c6c6c6c6c6c65625a50453a2e2115090000000000000000000000000000000000000006111b262f39434b545c606b70767c8184888b8d8f9091929293929191908e8c8986827e79716c665f584f473e352b20160c0100000000000000040f19242d353d4245464646464646464646464646464646464646464646464646464645454442403e3b3936302d2a251f1a140b060000000000000000000000000000000000000000000000000009141f2933444e565c5e606060606060606055534d453c31261a0e05111d29343f4851565860606060606060605b59534b412f261b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a26313c4855616e7b87929faaac9f92877c6f675d554e46454041414142474c515b606d7a85929eabaca095897d7063554b4034281c10040000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa6998c7f8c94948f847d76726f6d666b666c6e72787f879298a3aea99f948a7e7164594f442f261c11060000000000000000050e19242f3a434c565e676d747d848a8f93999a9c9e9f9f9f9e9d9c9a9a938f8a837c736d665c544a42382e23170b020000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000815222e3b4754606a6f79797979797979716c62564a3d3124170b000000000000000000000000000000000000000b17222d38414b555c666d737d82898e919698999b9d9e9e9f9f9f9e9d9d9b9898928f8a857e786f6a61594f473d32281e1308000000000000000008121b242b31363839393939393939393939393939393939393939393939393939393938373533312e2d2a25211e1a140e090300000000000000000000000000000000000000000000000000020e1a26313b455660676b6c6c6c6c6c6c6c6c6c5f574d42372b1e120915222e3a45515b62656c6c6c6c6c6c6c6c68655d5341382d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15212d3a46535f6975818e98a3aea3999083796d675f5853514b4e4e4e4d53555d606d74818e97a1ada69d9083776b605443392e23180c000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa396897d828f97969189837f7b79787778797b7f848b9299a3aaaaa2978f82766c6155473d321d140a0000000000000000020d17202935414c555e686d79818a91969c9fa4aba5aba49f9fa4aca5aca49f9c95908780786d665c544a3f34281d140a000000000713202d3a4653606d78868686868686868073665a4d4033271a0d00000916232f3c4956626f7c868686868686867e7165584b3e3225180b000000000000000000000000000000000000030f1b27333f49535c676d7880888f949a9ea1a8a6a9a19e9d9d9c9d9d9ea1a9aaa39f9b97918b837c706b61594f443a2f24190d01000000000000000009121920262a2c2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272421201e1914120e090300000000000000000000000000000000000000000000000000000005121e2a36424d57677277797979797979797976695f53463a2d21140b1724313d4a56626d727979797979797979756f6553493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86929fa6aba0958f82796f6a63605c555b5a5b575f62676d747f8c939ea9a99f948a7d7064594f4430271d1207000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa3968a7d7b8592999e95908b888685848486888c91959fa3abaaa29892857b6e615a5045352b210b02000000000000000008131e29323a45515d676d7a838e939ea0a8a7a09d99959993939a96999ea0a8a7a099928c81786d665c50443d2f261c11060000000713202d3a4653606d798693939393938d8073665a4d4033271a0d00000916232f3c4956626f7c8993939393938b7e7165584b3e3225180b00000000000000000000000000000000000005121f2b3744505b656d79828d939a9fa6a7a09d999697929090909090929795999da0a7a19e9590867d706b60564c4135291d1307000000000000000000080f151a1d1f20202020202020202020202020202020202020202020202020201f1f1d1c1a171414110e08050200000000000000000000000000000000000000000000000000000000000714212d3a46535f69778486868686868686867b6e6155483b2e2215091825323f4b5865727f86868686868686868175655b5044372b1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313b46535f69737f8c949fa7a79f948f837c75706d676867676869696e737a818c919ca5aaa1978f82766c6155473d331e150b00000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7d717d8792989f9d9899929191919298989da0a8aba79f9892867d70695f53483e3323190f0000000000000000010d1925303a44515b606d798390959ea5a9a19e95908c8987868687898c91969ea1a9a39f938f81786d60584e42382d22170b0000000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d00000916232f3c4956626f7c89959f9f9f988b7e7165584b3e3225180b000000000000000000000000000000000005111e2a36414c56606c77818e949fa4a7a09d95908c89878584838383848587898c90959ea1a7a09892867d6f685d52453a2f24180d0100000000000000000004090e111213131313131313131313131313131313131313131313131313131212110f0d0b0807050200000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88969393939393938b7e7165584b3e31261a121e2a36424d576875818e9393939393939285786c605346392d2013080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2a36424d57606d78828f959fa7a69f959087817d79777574747476787b80858e939ca3aaa29892857b6e615a5044352b210c0300000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e71707d8690959d9fa39f9e9e9e9fa3aaa9a8a79f9d9590867d706b60574d42362c221107000000000000000005111e2a36414c56626d75828f959fa7a8a097928a837f7c7a79797a7c7f848a9297a0a8a59e938d80736a60544a3f33281c0f0300000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2aca4988b7e7165584b3e3225180b00000000000000000000000000000000000713202d3946525e68727f8c939ea6a59d959089837f7c7a787776767677787a7c7f838a9297a1a9a29891847a6d60554b4135291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5465727e8b98a89f9f9f9f9b8e817568574d42372b1e14212d3a46535f697884919e9f9f9f9fa197887c6f6255493c2f24190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e1a26313b44505c666d7a8390959da5a7a099938e898683828181818385888c92979da5a7a09892867d70695e52483e3323190f0000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e716b707c838a9095989b9d9e9f9f9f9e9d9b9895908a837b706b60594f453b31241a100000000000000000000713202d3946525e68727f8b949ea7a9a09591857e77726f6d686c6d6f72787e859196a0a9a59f93877c6f665b5044382b1f130800000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000004101c2834404a54616d7a85929fa5a69d938e837d77736f6d686a6a696a6a676d6f73787e859196a1aaa1968d8073675d5145392c20130600000000000000000000000000000000000307090a0e111213131211100e0b090706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c6675828f9ba8acabacab9e918578695f53473a2e2115222e3b4855616e7b8896a1adacaaaca9998c7f7366564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f28343f4a545e686d7a838e929d9fa7a49f9b9892908e8e8d8e8f9197999ea1a9a29e9590867d706b60574d42362c2211080000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e71646a6f787e83888b8e909192929291908e8b88837e766e6960594f473d33291f1208000000000000000005111d2935414c56616d7a85929fa6ada19791837b716c6662605d606163656c717b849197a1ada4999184786c6053463a3025190d01000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000006121f2c3844515c6674808d98a2aa9e948e8179706b6663605d565d5d5d555d6062656c717b84919ea8a99f92857a6d6054473a2d211407000000000000000000000000000000040b101316161a1d1f201f1e1e1d1a18151312100b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929fa8a19ea1a8a197887b6e6255483b2f221825313e4b5864717e8b97a8a8a09ea0a89c908376685d5245392c20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b17232e38424c565e686d79818990959b9fa2aaa39f9d9b9a9a9b9c9ea1a9a49f9c97928c837b706b60594f453b30241a10000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e71645f666d71777b7e8183858586858583817e7b76716c615f574f473d352b21180d0000000000000000000713202d3946525e6874808d98a2aea69e92857b6e69615a5654525354535b60696e7b85929ea8aba0958a7d7063564c41362a1d1105000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000713202d3a4653606d7885929fa9a2988f82786d6760595654524c5050504c5154535b6069707d8a96a0aca2988a7e7164574b3e3124180b0000000000000000000000000002090e161b202223272a2c2c2c2b2a29272522201f1c17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8998a2a1969196a1a9988b7e7265584b3f31261e2a36424d576874818e9ba9a0969196a09f92867a6d6054473a2d21140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303a444c565e676d747d83898e9298999b9d9e9f9f9f9f9e9d9b999993908b857f786e6960594f473d33291f1208000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164545c6064696e72747678787979787675726e6964615a534d453d352b23190f060000000000000000000714212e3a4754616d7a86929faaab9f948a7d70695e575049474546474950565e69717e8b96a0aca79c8f8275685e5246392d201307000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000a1723303d4a5663707d899297979992857b6e665c554f49474541434343414547495057616b7784919daaaa9a8d8174675a4e4134271b0e000000000000000000000000050d141a21272c2f30343738393938373634312f2d2b28231c140c020000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c566673808c99aa9e9184919eaa9b8e817568584e43372b202d3a46525e697784919ea1979184919ea3998a7d7164574a3e31261b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e28323a444c555c606b6f777d8185898c8e90919292929291908f8d8a86837e79726d665f574f473d352b20170d00000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164585053575f6165686a6b6c6c6c6b6a6865615f57555046423b332b231a110800000000000000000005121e2a36424d5765727f8c98a2aea99c8f82766c61574d453e3a39393a3f444d57616c7784919eaaa99f93867a6d6154473a2e211407000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000a1724313d4a5764707d8285878a8c8d8073685e544b433d3a39352f362f35393a3f444f596774818d9aa7a99c908376695d5043362a1d100000000000000000000000060f171f252a32383b3d4144454646454443413e3c3a38342e261e140a000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525d687683909da8988c7f8c98a29e9185786a5f53473a2e212e3b4754616e7b8796a09e9285808c99ab9a8e817467584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c162029323a434b515960636b7075797c7f82838485868685858382807d7a76726d67605c544d453d352b23190e0500000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b464d5355585b5d5e5f5f5f5e5d5b5855534d49453e36312a211a1108000000000000000000000714202d3a46525e697783909daaada197897d7063594f453b332d2c2d2d333b45505a66737f8c999d9c9c998a7d7063574a3d3024170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000a1623303c4955616c7076787b7d80827c6f62564d4239302d2c29242a24292c2d33404c5966737f8c99a6aa9d9184776a5e5144372b1e1100000000000000000000060f18212930363d4448494d505253525151504d4b4846443f3830261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86939fa096877a85929fa197887b6e6255483b2d22313e4b5764717e8a97a89b8f827d8a96a89e9184786a5f53473a2e211507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6865605d55514a423c332b231911070000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e4246484b4e505252535252504e4b4847423c39332a261f180f0800000000000000000000000815212e3b4854616e7b87959fabab9e9184786c6053463e33292120202227333e4956626f7c899191908f8e8d8073665a4d4033271a0d000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000814202d39444f59616469696e7073756f6a5f53443b302721201f2023282c2f353a424d566673808c99a6aa9e9184776b5e5144382b1e11000000000000000000020c18212a333b42464f54565a5d5f5f5f5e5d5c5a585553504a42382e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8a99a49e918477828f9ca9988b7e726553493f332a36414c566774818d9aaa988b7f7a8796a0a196887c6f6255483c2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f272f343d44484f54555c606366686a6b6c6c6c6c6b6a686664615e5653514b444039302a21191108000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e363a3b3f4143454546464543423f3b3a37312d28221a140e060000000000000000000000000b1824313e4b5764717e8a97a7b1a79a8d8174665b5044382c2017131317202d3a4753606d79868584838281807e7164574b3e3124180b000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000004101c28333e474f5557575e61646669625f584e4332292122282b2d2e34383a40454c545e6975828f9ba8aa9d9083776a5d5044372a1d110000000000000000000a141e2a333b454d52596063676a6b6c6c6b6a69676462605c544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e586774818e9aab9b8e81757f8c99a99b8e8275655b5044372d3946525e687784919da298887c7784919ea9998c7f7266554b4035291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d151d232932383d44484b515356595b5d5e5f5f5f5f5e5d5c5a5754524c47454039342e271e180f0800000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312d2e32353738393939383735322e2d2b261f1c170e0903000000000000000000000000010e1b2734414e5a6774818d9aa7b4aa978a7e7164544a3f33281a0e0606131f2c3845515c676d79787776757474716c6155493d3023170a000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000b17212c353e44494a4d535457595c55534e463c312a2d2d3338393c4045464b51565d666e7b86929faca89c8f8275695c4f4236291c0f000000000000000006111c26303b454d575e616b70747778797978777674716f6d665c5044382b1f1206000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a7884919eab988c7f727c8897a29e9285796c605346392e3a4754616d7a8795a09f92857974818e9ba79c8f8376675d5145392c2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b121821272c323839404546494c4f50515253535252504f4d4a4746413a39352f28231c150c060000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e31252225282a2b2c2c2c2b2a282522211e1a15110c05000000000000000000000000000004111d2935414c566a7683909da9aea298887b6e6155483b2d2217080004101c2934404b555c606c6b6a6969686764615a5045392d211408000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000005101a232c33393c3d4246484a4d4f4847433c3431363a3b3f4446494b5153555d60686d78828f98a2aea7998c7f7366594c403326190d00000000000000000b17232e38424d575f696e767c8083858685848483807e7c786d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8896a1a399897c6f7985929fa197887b6f6255483c2d3e4a5764717d8a97a89c8f8276717e8b98a89f92867a6d6053473a2d20140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c161b21272c2e34383a3d3f42434545464645454442403d3a3936302c29241d18120b03000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e312518181b1d1f1f201f1f1d1b181514120e0903000000000000000000000000000000000713202c3945525d687885929fabac9f9285796c605346392d20130600000c18232f39434b51535f5e5e5d5c5b5a575550483e33281d1105000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000008111a21282d3031363a3b3d40423c3a37373b3c4246484a505355555c6063676d727a818f949eaaab9f95887c6f6255493c2f2216090000000000000003101c28343f4a545f696e7b82898d9092929291908f8d8b887e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b5565727f8c98a89f9286796d75828f9ba9988b7f726553493f35414c566774808d9aaa998c7f726e7b8896a1a3998a7d7064574a3d31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1d23282c2d30333537383939393938373533312e2d2a251f1d18120c070000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180c0e101212131312100f0c080806020000000000000000000000000000000000000714212d3a4754606d7a8797a2adaa9d918477655b5044372b1f1205000007121d273139404547525251504f4e4d4b49453e362c22170c00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000000000810171c2023252a2d2e31333036393c4347494d5354545b606266676d7074797e858f939ea6aea49d9083776a6054473b2e2215080000000000000006121f2b3844505c666e7b848f949a9d9e9f9f9e9d9c9a978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6776828f9ca99c90837667727f8b98a99b8f8275655b50443945525d687783909da298897c6f697884919eab9a8d817467574e42372b1e1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b1012181c1f202326282a2b2c2c2c2c2b2a29272421201e1913100c0701000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b02040506060605040200000000000000000000000000000000000000000000000815222f3b4855626e7b8895a9b3a99c8f82766953493f33271b0f030000010b151f272f34383a464544434241413e3d39332c241a100600000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000000050b1014161a1e21282f353a4146474e5455575e6165666c6f7276797d81858b91979ea5afa69d92897d7063584e43372b1f1306000000000000000713202d3a4653606d788390969fa6aaababa5a1a0a0a1978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986929fab998d8073666f7b8897a19e9285796c6053463a4754606d7a86939f9f9286796d6875818e9ba89e9184786a5f53473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131316191c1d1e1f20201f1f1d1c1a171413110d0804000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa89b8e8175685b4e422d22170b00000000030d151d23292c2d3938373636353431302d28221a12080000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000000000000000409121b232b323a41454c525458606266696e7175797c7f8285898d92979ea1a9ada59e948d80746b6054463c32271b0f0300000000000004101c2834404b5564717e8a959fa8b0a9a19e9894939394968b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8998a2a3998a7d70636a7885919ea297887c6f6255483d4a5763707d8a99a49c8f82766665717e8b98a8a196887b6e6255483b2f24180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0c0f10121213131212110f0d0a070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a79a8d8174675a4e4134271b060000000000030b12181c1f202c2b2b2a2928272423211d171008000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000000000009121b242d353d444c52565e61666a6f73777b7e8285888c8f92989a9fa2a9aca9a19e938e82786d60594f44342b20150a0000000000000006131f2c3845515c6776828f9ca7b1aaa197928b88868687898b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414d566773808d9aaa9f92867a6d606875818e9ba9988b7f7265544a404b556773808d9aaa998c7f7366616e7b8896a1a8988b7f7265554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2aca4978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e01000000000001070c1013141f1f1e1d1c1b1a181714110c0600000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000000000006101b242d373f474f565d60686d72777c8084878b8e9297999c9fa2aaababa8a19e96918a81796d665c51473d3322190e04000000000000000713202d3a4653606d7986929facaea39892857f7b79797b7c7f7c6f6256493c2f23160900000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e687784909daa9d908377675d65717e8b98a89b8f8275665b5045515d677683909da298897c6f635f697884919ea99c8f8276675d5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0d10111213131211100d0a07060400000000030505060606060606000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f978b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a69a8d8073675a4d4034271a0d010000000000000000040607131211100f0e0e0b0a0805000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000000040e18222d363f49515960686d737a7f84888d9196989b9ea2a9a9acaaaaa29f9b96918c847e746d675c544a40352b21100700000000000000000916232f3c4956626f7c8999a3aeac9f92867c726e6d6d6e70726f6a6054473b2e22150800000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8795a0ac9a8d80736755616e7b8796a19f9285796c60534753606d7a86929f9f9285796d60576874818e9ba79f9286796d6053473a2d201409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314171a1d1e1f1f201f1e1c1a171413100c07010c0f1112131313131313090907030000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8893939393938b7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a79a8d8074675a4d4134271a0e010000000000000105090b0b121111100f0e0d09080603000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000000000a15202a343e48515b626b707a80868c9196999da0a8a8abaaa7a7a09d9a98928e8a847f79716c605c554b42392e231a0f0000000000000000000a1724313d4a5764707d8a97abb4a79a8e81746a6160606163656260584e43372b1f130600000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495364717e8b97a7a49a8a7d7064575e697884919ea297887c6f62554a5663707d8999a39c8f8276665c5864717e8b97a8a3988a7d7063574a3d31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13191d20212427292b2b2c2c2c2b292724201f1c18120e181c1e1f2020202020201615130f0a04000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c868686868686867e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a79a8d8074675a4d4134271a0e010000000000060c111517181f1e1d1c1b1a191615130f0a0400000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000000030f1b26313c46505a626d727d848d92989ea0a8aaaba8a8a09e9a9795908d8985817d78726d67615a514b433930271c11080000000000000000000b1825313e4b5864717e8b97a4b1a4978a7e716458535354565856544e463d32271b0f030000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b6575818e9ba89f93867a6d6154576774818e9aa9988b7f7265544b556673808c99aa998c7f72665454616e7b8796a1aa9a8d807467574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e141a1e24292c2d3033363738393939383634302d2c29231d1a24282b2c2d2d2d2d2d2d23221f1b160f070000000000000000000000000000000000000000000000000000000000000815212e3b47535f6a7679797979797979716c6256493d3024170a00000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8996a3afa79a8e8174675b4e4134281b0700000000000911181d2124252c2b2a2928272622211f1b150e06000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000006121f2b37434e58626c727f8791969fa2aaaaaaa29f9b9896918e8a8784807d7975706d66605d555045403930271e150b000000000000000000000c1825323f4b5865727e8b98a5afa295897c6f6256494648494c4947433d342b20150a00000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7885929eaa9d908477685d525764717e8a97a79b8f8275665b515c677683909ca298897c6f6356535e697884919eaa9d918477695f53463a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f181f262a2f35393a3d404344454646454443403d3a38342f2a252f3437383939393939392f2e2c2721191007000000000000000000000000000000000000000000000000000000000006131f2b37434e585f626c6c6c6c6c6c6c64625a5045392d21150800000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a9b3a89b8f8275685c4f422e23180c0000000009121b22292e3132393837363534332f2e2b26201810060000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b000000000000000000000000000000000000000815212e3a47535f6a717e889299a1a9aca69f9c98928e8b8784817e7a7773706d6663605c54514b433e342e271e150c03000000000000000000000c1925323f4c5865727f8b98a5aea195887b6e6255483b3b3d3f3c3b37322b22190f0400000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8897a1a79a8d817467564c54616e7a8795a09f9285796c6053606d7986929f9f9285796d60534d576874818e9ba7a096887b6e6155483b2e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1218212a31363a4145474a4d505152525352514f4d4a4745403936313a4044454646464646463c3b38322b22190f0400000000000000000000000000000000000000000000000000000000030f1b26323c464e535560606060606060585650483e34291d110500000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8797a2ada99c90837669544a4034281c1004000006111b242d343a3d3e454444434241403c3b37322a22180e0400000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b00000000000000000000000000000000000006121f2b37434e58626f7c86929aa3aba8a09e948f8a85827e7b7774716e686763605c5453504a4540393128231f1c17110a020000000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e30322f2e2b2720191007000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b5566727f8c99a9a8978a7d7164574a525e687784919da297887c6f625663707c8998a39c8f8276665c514b5864717e8b97a8a8988b7e7265544b4034281c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c2328333b42464c5254575a5c5e5e5f5f5f5e5c5a5753514b46423b454c50525353535353534948433d342b21160a00000000000000000000000000000000000000000000000000000000000a15202a343c434749535353535353534b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000713202d3946525d687885929fabaa9e918477665c5144382c1f120600010c18222d363f454a4b5251504f4e4d4c4947433c342a20150a00000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0600000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000815212e3a47535f6a76828f98a3aca7a0969189827d7975716e696764615e565653514a46443f38352f312f2d2b28221c140b0200000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e232523221f1b150f070000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6776838f9ca9a096877a6e6154474c566774808d9aa9988b7f72655466737f8c99aa998c7f7266544a4854616e7b8796a0a89c8f8275665c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e343f454d53565d606366696a6b6c6c6c6b696763605c55534d444f575c5f60606060606056544e463d32271b0f0300000000000000000000000000000000000000000000000000000000040e18222a32373b3c464646464646463e3d39342d241b110600000000000000000000000000000000000000000000000000000000000000000005111d2935414c566a7683909da9ac9f9286796d6053463a2d2013070005111d29343f485056585f5e5d5c5b5a5955534e463c32261b0f03000713202d3a4653606d798693a0aca79a8d8174675a4e412d22170b00000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000915222f3c4855626f7b88949faaaca09590847d76706d6765615e575754524c494644403a444442413f3e3c3938332d261d140a00000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22191615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929faa9d918477685e52464a5764707d8a99a49b8f8275655c6676828f9ca298897c6f62564946525e697784919eaa9f9285796d6053463a2d2013090000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c273039404451575f61686d7073767778797978777673706d67615e57505761686b6c6c6c6c6c6c6260584e43382c1f1307000000000000000000000000000000000000000000000000000000000006101820262b2e2f3939393939393931302d29221b120900000000000000000000000000000000000000000000000000000000000000000000010d192430414e5b6774818e9aa7afa399887b6f6255483c2e23180c060615212e3a45505a62656c6b6a69686766625f584e43372b1f1306000713202d3a4653606d798693a0aca89b8e827568544a3f33281c0f03000916232f3c4956626f7c8995a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000000c1926333f4c5966727f8c99a6afa49a90837a706b64605c5554524d4b4746413d3a434a4f50514f4d4c4a4946443f382f261c1106000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215090806030000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a99a3a79a8e817467564c414754606d7a86939f9e9285796c606d7985929f9f9285796d605346424d576774818e9aa7a298897d706356493d30251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424a515b63696e747a7d808384858586858482807d79746e69605b536873787979797979796f6a6054483b2e221509000000000000000000000000000000000000000000000000000000000000060e151b1f21222d2d2d2d2d2d2d2524211d171109000000000000000000000000000000000000000000000000000000000000000000000000081824313e4b5764717e8a97a7b1ab988b7e7165554b4034281d1413131624313d4a56626c71787777767574736f6a5f53473b2e211508000713202d3a4653606d798693a0aca99c8f8376665b5044382b1f120700091623303c4956636f7c8996a2afa4988b7e7165584b3e3225180b0000000000000000000000000000000000020f1c2835424f5b6875828e9ba8ac9f93877c6f68605953514b4846423e3b393634434d555b5d5d5c5a59575553504a42382d22170b000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774808d9aaba8978a7e7164574b3e45525d687783909da297887c6f626f7c8998a29c8f8276665c50443e4b5764717e8a97a8aa9a8d807367574d42362a1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a545c606d727b81868a8d8f9191929292918f8d8a85807b726c655c6b78858686868686867c6f6256493c2f23160900000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020181715110c06000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87959faba89b8e8175675c5145392e2521201f202935404b5565717e8584838281807f7c6f6255493c2f221609000713202d3a4653606d798693a0acab9f9285796c605346392e23180d060a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b000000000000000000000000000000000003101d293643505c6976838f9ca9a99d9083766a5f564f4645403b3a36302e2d2f3c46555f666a6a6967656462605b544a3f33281c0f030000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e697784919eaaa196877b6e6154483b414c566673808d99a9988b7f7266727f8c99aa998c7f7266544a3f3b4754616e7b8796a0aa9d908477695e52463a2d20140600000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212c3844515c666d757f878d9298999c9d9e9f9f9f9e9c9a98928d867f776d666679869293939393887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000000000000000003060809131313131313130b0a08050000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697783909daaab9f9285796d60544b4036312d2c2c2d323a45515d6775818e91908f8e8d897c6f6356493c30231609000713202d3a4653606d798693a0acada297887c6f62544a4034281f1612101724313e4a5764717d8a97a4b0a4978a7e7164574b3e3124180b000000000000000000000000000000000004101d2a3743505d6a7683909da9a79b8e817468584e443d38342e2d2a2a2d2f38424e5866717777757472716f6c665b5044382b1f12060000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8796a0ab9e918478695e53463a3d4a5663707d8999a39b8e82756675828f9ca298897c6f6256493c3a46525e697784919daaa095877b6e6154483b2e23170c000000000000000000000000000000000000000000000000000000000000000000000000000000000915202c38434f59606d78818c92999fa2aaa9a8aaa29f9e9e9e9fa29f98928c81786d6d798699a39f9f94877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d5765727f8c98a2aea2988b7e71665c5146423b3a39383a3d444d57606d7a85929e9d9c9b9285796d6053463a2d201307000713202d3a4653606d798693a0acb3a9998c7f73665c51443b3128201f1c1f25323f4c5865727f8b98a5b0a3968a7d7063574a3d3024170a000000000000000000000000000000000003101d293643505c6976838f9ca9a79a8d817467564c413a39352f363036393c424a54606a77838482807f7d7c786c605346392d2013060000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5465727e8b98a8a79b8e817468574d42363a4753606d7a86929f9e9285786c7985929f9f9285796d6053463a36424d566774818e9aa7a7988b7e7165544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313b4854606b74808d939fa3ababa49f9b979892919192939a989d9f938f82786d7a8794abb4a094877a6d6154473a2e211407000000000000000000000000000000000000000000020608080b0e1011121313121211100d0b08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a25303b4754616d7a86929fa9aa9e9184796d605b534d4847454546484f565e69727f8c98a2aaa69b8e8275665c5044382c1f1206000713202d3a4653606d798693a0acb8ab9e9184796d60574d433a322d2c282b2d36414c566774808d9aa7b3aa95897c6f6256493c2f2316090000000000000000000000000000000000020e1b2835414e5b6874818e9ba7a99c8f8276685e534c4745414343434146474d545b666f7c88908f8d8c8a85796c605346392d2013060000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c6675828f9ba8a9988b7e7165584b3e313945515d677683909ca197887b6f7b8897a29c8f8276665c504438303e4b5764717e8a97a8a89b8e8275665c5044382c1f1206000000000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424e57636f7c87939fa5afa9a199938f8a878584848586888c90959e948d80747b8794a1ada093877a6d6054473a2d2114070000000000000000000000000000000000000205090e121415181b1d1e1f20201f1f1e1c1a181514120e090502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000914202d3946525d6874808d97a2aca0968d80746d615e575554515153555960686e7b86929faaab9f94897c6f63544a3f34281c1003000713202d3a4653606d798693a0acb9ada1968b7e71695e554c443e3a383437393e46525e687683909ca9aea298877a6e6154473b2e2114080000000000000000000000000000000000000c1926323f4c5965727f8c98a7ac9f92867a6d655e5654514b504f504d5254575f666c7882909c9c9a988e8174655b5044372b1f12050000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929faba197887b6e6155483b2e35404b556673808c99a9978b7e717e8b97a9998c7f7266544a3f342e3b4754616e7a8795a0ab9f9285796d6053463a2d20130800000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a76828f9aa4afaba1979287827d7a79787778797b7f838a9196928a7e7b8895a1ada093867a6d6053473a2d2014070000000000000000000000000000000002080e11151a1e21222528292b2c2c2c2c2b2b29272522211e1a14120e0902000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56616d7a85929fa5a89d928c7f756e696461605d5c6062656b6f7a839198a2aea3999083766b605442382e23170c00000713202d3a4653606d798693a0acb1a8a09d92857b6e675e56504846443f4446484f58616d7a86929facab9f928578695e52463a2d2014070000000000000000000000000000000000000815222f3b4855626e7b88959faba3998e81776d6863605d555d5c5d565e6164696e78808e949fa8a0958a7d706453493f33271b0f030000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8997a2ab9e918578695f53463a2d2f3c4956636f7c8998a29a8e8174818d9aa298897c6f6256493c2e2d3946525e687784919daaa297897c6f6356493c3025190d01000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b88949facaea39992857d75716e686b6b666d6e72767d84909492857d8996a3aca09386796d6053463a2d201307000000000000000000000000000002080d14191e20262b2e2f323436383939393938373634322e2d2b26201e1a140e0902000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a46525e68727e8b939ea7a49c918c827b75716e6d67666d6f71767d849195a0aaa69f92877c6f63594f4330261c110600000713202d3a4653606d798693a0acaca09591959082796d68615a5553504a50535459616a73808c99a3afa99c8f827669564d42362a1e11050000000000000000000000000000000000000814212e3a47535f6a7683909da5ab9e938e817a74706d676a6969696a686e71757b828e929da6a59d9083786c605346392d22170b000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566673808c99a9a89b8e817568574d42372b2d3a4653606d7985929f9d90847783909d9f9285796d6053463a2d2a36414c566774818d9aa7a9998d807366564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c99a6b0ac9f92877c6f6b64615e56545c6062656c707a8290949083909daaaca09386796d6053463a2d20130700000000000000000000000000040c13191f252a2d31373a3b3e41434445464645454443403e3b3a37312d2a251f1a140d0500000000000000000000000000000000000000000000000000000000000000000000000000000008131e2a36414c56626d75818e959fa6a49c948f86827e7b7a7979797b7e83899196a0a7a59e948c7f736b6054473d321e150a0000000713202d3a4653606d798693a0acaa9d9184919590837a716c6662605c545b6061646b707c87929fabb0a6998c7f7266594c3f3025190e0200000000000000000000000000000000000006121f2b37434e5863707d89939da6a59e938e86807d7a787776767677787a7e82878f949da5a69d938a7d70655b5044372b1b1106000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d687683909da9a9988b7e7265584b3f31262c3844515c6676828f9c9f93867a86929f9c8f8275665c5044382b25303e4a5764717d8a97a7aa9d908377685e5246392d20140600000000000000000000000000000000000000000000000000000000000000000000000005111e2a36424d576976838f9ca9b1a79a8d80736a605954524c4a5053555a61676d798290959095a0abaca09386796d6053463a2d201307000000000000000000000000080e161e25293036393c4247484b4e50515253535252514f4d4b4846423c3a36302a251f170f080000000000000000000000000000000000000000000000000000000000000000000000000000020d1925303a44515b606d798390949da5a69e98928f8b8887858586888b90949ea1a8a39f938e82786d60594f43352b210c030000000713202d3a4653606d798693a0aca4978a7e85929590847e77726f6d666b656c6e71767d859299a3aeac9f94887b6e6155483b2e22150900000000000000000000000000000000000000020f1a26313c4855606b74818e949da5a59e98928d898785838382838485878a8f93999fa6a49d948e81746c6153493f33271b0a00000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86939faca197887b6f6255483c2f222834404a5466727f8c99a4998c7f8c99a3998c7f7266544a3f3428212e3a4754616d7a8795a0ac9f93877a6e6154473b2d22170b0000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697885929fabaca095877b6e61584f4746413f44464850555d676e7b85929da0a7b1aca09386796d6053463a2d20130700000000000000000000020a121a202830353b4146474e5355585b5c5e5f5f5f5f5e5e5c5a5855534d4846423b363029211a120a020000000000000000000000000000000000000000000000000000000000000000000000000008131e28323f45515d676d7a828e939da0a8a39f9b97949892929895989c9fa6a7a099928d81786d665c50463d3223190f000000000713202d3a4653606d798693a0aca4978a7e7e8b9296918a837f7b79787778797b7e828a9297a2abafa49a8f8276695f53473a2d21140800000000000000000000000000000000000000000a15202c38444f59606d79828e939da0a7a29f9a96979290908f90909297979b9fa4a7a09d928d82786d605a5041382d22170b00000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a99a4ab9e9285796c605346392d20232e3c4955626f7c8897a29e9184919ea298897c6f6256493c2e23202d3946525e687784909daaa49a8b7e7164544a3f33281c0f0300000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b8798a2aeaa9d908377695e53463d393634383a3e434c555e69717e8b97a1adb9aca09386796d6053463a2d201307000000000000000000020b141c242c323a41464d5254575f626567696b6c6c6c6c6b6a696765615f5754524d46423b332c241c140a02000000000000000000000000000000000000000000000000000000000000000000000000020c16202935404b555d686d78818991959c9fa3aba4aaa29f9fa2aaa4aba49f9c95908780786d665c544a3f342b211007000000000713202d3a4653606d798693a0aca4978b7e74818e949e95908c888685848585878b8f949fa2a9aea59f93877c6f62574d42372b1e1206000000000000000000000000000000000000000003101c27333d45515c676d79818990959b9fa2aaa9a19e9d9c9c9c9d9fa2a9aaa29f9b95908a80786d665c51473e2f261b110600000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e586774818e9aaba89b8f8275655b5044372b1f202d394653606c7985929fa1969196a19f9285796d6053463a2d201e2a36414c566774818d9aacac9b8e8175665b5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996aab4a79a8e817467574d42342d2a282b2d313a434d57606d7985929eabb8aca09386796d6053463a2d2013070000000000000000010b141d262e363e444c52565e61666a6e717476777879797878777673716e6966615e57524d453e362e261c140a00000000000000000000000000000000000000000000000000000000000000000000000000050e18242f3a434c565d666d747d848a8f92999a9c9e9e9f9f9e9d9c9a99938f8a837c736c665c544a42382e22190f00000000000713202d3a4653606d798693a0aca5988b7e7278828e939f9d999a939291919298979c9fa6adaba39f938d80736a6054453c31261a0e020000000000000000000000000000000000000000000b16212834404b555c676d747d838a8e9298989a9c9d9e9f9f9f9e9e9c9a9898928e8a837d746d665c544a40352c1d140a0000000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a7884919eaba9988b7f726553493f33271b1f2b3844505b6675828f9ba8a19ea1a89c8f8275665c5044382b1f1925303e4a5764717d8a9aa4ab9e9285796c605346392d20130800000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a5988c7f7265594c3f31261e1c1f2028313b45515c6673808d99aab4aca09386796d6053463a2d201307000000000000000009131d262f38404850565e61686e73777b7e81838485868685858482807e7b77736e69615e57504840382e261c13090000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a444c545c606b70787e82868a8d8f9192929291918f8d8a86827d786f6a605b544a423930261c100700000000000713202d3a4653606d798693a0aca5988b7f726d78818b92989fa29f9e9e9e9fa3aaa9a9aaa29f99928b81786d60584e43332a1f150900000000000000000000000000000000000000000000050c18232e39434b555c606b6f787d8185898b8e9091919292929191908e8c8985827d77706b605c544b42392e231a0b020000000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8896a1ada297887c6f6255493c2d22171c28333f4a5465727f8b98a9acabaca9988c7f7265544a3f34281c14212e3a4754616d7a86939faca197897c6f6256493c3024190d01000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a4b0a4978a7d7164574a3e3124171012161f2834404b54626f7c8998a3aeaca09386796d6053463a2d2013070000000000000007101b252f38404a525a61686d747b8084888b8e8f919292929291918f8d8b8884807b746e69615a524a40382e251b0f06000000000000000000000000000000000000000000000000000000000000000000000000010c161f28323a424b515960666c71767a7d808284858686858483807d7a75706c666058504a423930271e140a0000000000000713202d3a4653606d798693a0aca5998c7f72666d757f868d92989a9c9e9e9f9f9e9d9c9998928d867f746d665c50463d3221180e03000000000000000000000000000000000000000000000007121d273039434b515960666c7075797c7f81838485858685858483817f7d7975706b636159514b423930271c1108000000000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5565727f8b98a89f9f9285796c605346392d201317222d3b4855626e7b8897a19f9f9fa297887c6f6255493c2e231713202d3946525e687784909d9fa9998c7f7366564c4135291d1105000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4b0a396897d7063564a3d3023170a060d18232e3a4653606d7986929facaca09386796d6053463a2d201307000000000000030c19222d37404a525c636c717a81868c9196989a9c9e9f9f9f9f9e9d9c9a9895918d86817b716c645c524a40372d21180e03000000000000000000000000000000000000000000000000000000000000000000000000040d162028303940454f545b6064686e7174767778797978777673716e6863605b544e443f382f271e150c020000000000000713202d3a4653606d798693a0aca6998c7f7366606d727b80858a8d8f9192929291908f8c8985807b726d605c544a3f342b200f06000000000000000000000000000000000000000000000000000b151e27303940454f545b6063676d7072747677787879797877767472706d66636159554f45403930271e150b00000000000000000000000c1925323f4c5865727f8b98a5aea194887b6e6155483b2e2215080804000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6775828f939393938f8275665b5044382b1f1214212e3a47535f6a78859193939393939285796d6053463a2d2013111d2935414c566774808d93939393908376685d5246392d201307000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa296897c6f6356493c302316090007131f2c3845515c667683909da9aca09386796d6053463a2d2013070000000000000a151e2b343f49525c646e737e858d92999da0a8a9a29f9d9c9b9c9d9fa2aaa7a09d99928e857e736e645c52493f332a1f140900000000000000000000000000000000000000000000000000000000000000000000000000040d161e272e343d424a5053565e616467696b6b6c6c6b6a696764615e5653504a423c332d261d150c03000000000000000713202d3a4653606d798693a0aca6998d8073665b62686e74797d808284858685858482807d7a746e69625b504a42382e22190f0000000000000000000000000000000000000000000000000000030c151e272e343d424a5053555d60636567696a6b6c6c6c6b6b69676563605c54554f48443e342e271e150c0300000000000000000000050c1925323f4c5865727f8b98a5aea194887b6e6155483b2e22171614100b050000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79868686868686867f7266544a3f33281c0f121f2b37434e58687581868686868686868275665c5044382b1f120d1925303d4a5764707e868686868686877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090004101c2834404b546875828f9ba8aca09386796d6053463a2d201307000000000006111c26303d46515b646e74808a92979fa3a9a19e999792908f8f8f909298989d9fa7a39f97928a80736e635b51453b31261a0e0400000000000000000000000000000000000000000000000000000000000000000000000000040c151d23282f383f44464c5254575a5c5e5f5f5f5e5e5c5a5754524c46443f382f28221c140b0300000000000000000713202d3a4653606d798693a0aca6998d8073665a565e61666d7073757778797978777673706d67615e5751443f3830261c1007000000000000000000000000000000000000000000000000000000030c151d23282f383f44464b515356585b5d5e5e5f5f5f5e5e5d5b595653514b48443e383328231d150c03000000000000000000000810171c25323f4c5865727f8b98a5aea194887b6e6155483b2e262423201c171008000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d79797979797979726d635742382d22170b0f1a26313c4d59656f7579797979797979757065544a3f34281c10081623303c4955616c707979797979797975685d5246392d201307000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000c18232e414e5b6874818e9ba7aca09386796d6053463a2d20130700000000000c17232e38424f59626d74808d929ea1a9a39f97918c8885838282838385888b90959ea1a8a29f928d80736d62574d42362a20160a0000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d262d33383b4146474a4d4f515253535251504d4a4746413b38332d261d17110a020000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d52545c606367696b6b6c6c6b6a696663605d55534d453f342e261e140a0000000000000000000000000000000000000000000000000000000000030b12181d262d333839404547494c4e5051525253525251504e4c4a4645403938332c282118120b030000000000000000000008121a22282d323f4c5865727f8b98a5aea194887b6e6155483b333331302d28221a11080000000000000000000000000000000000000000000000000000000000000004101c2834404b555c606c6c6c6c6c6c6c66635b51462f261c11060a1520313d48535d65686c6c6c6c6c6c6c69655d5442382e23170b0814202d3944505a61646c6c6c6c6c6c6c6b5d564c4135291d1105000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000071a2734404d5a6773808d9aa6aca09386796d6053463a2d2013070000000003101c28343f4a54606b727f8c929ca4aaa299928c84807b787675757677797b7f838a91969fa6a49c928b7f72695f53463d32271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000070b141c22282b3036393b3e414344454646454443403e3b3936302b28221c140b0600000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d464b5153575a5c5e5f5f5f5e5d5c595654514b46423b3328231c140c0200000000000000000000000000000000000000000000000000000000000000070b141c22282b2f35383a3d3f41434445454646454443413f3d3a38342e2c28211c160c07000000000000000000000005101a242c33393c3f4c5865727f8b98a5aea194887b6e6155484040403d3c39332c231a1005000000000000000000000000000000000000000000000000000000000000000c18232e39434b51535f606060606060595751493f351d140a000314202c37414b53595b606060606060605c5a544b4230261c110604101c28333e485055576060606060606054524c443a3024190d01000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000006121f2c3844505c666f7c87929fa4aba29892878079736f6a6a696869656c6e72777d848f949fa6a49f92867b6e61584e43382b1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f252a2d2e3134363838393938373634312e2d2a251f1c17110a020000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d404045464a4d4f5152535252514f4d4a4745413a3631292117110a02000000000000000000000000000000000000000000000000000000000000000000020a11171c1f24292c2d3032343637383939393838363432302d2c28231d1c16100b050000000000000000000000000c17222c363e45494a4d5865727f8b98a5aea194887b6e61554d4d4d4d4a49443e362c22170b0000000000000000000000000000000000000000000000000000000000000007121d273039404546525353535353534c4a463f372d230b0200040f1a252f3941484d4e535353535353534f4d494239301e140a00000b17222c363e44494a535353535353534746413a32281e130800000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000003101c28343f4a54606d78839099a3afa39992867d736d67625f585c5c535b6061656c707a828f949fa9a2988f82766a6054473b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f14191e20212427292b2c2c2c2b2b29272421201e19140f0b0600000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4034383a3d404244454646454443403d3a39352f2a251f170f0600000000000000000000000000000000000000000000000000000000000000000000000000060b0f12181d1f202325282a2b2b2c2c2c2b2b2a282623201f1c1812100b050000000000000000000000000005111c28333e48505557595965727f8b98a5aea194887b6e615959595959575550483e33281c1004000000000000000000000000000000000000000000000000000000000000000b151e272e34383a464646464646463f3e3a352d251c1100000009131d272f373d40424646464646464642413d3730271e0c02000005101a242c33393c3d464646464646463a3935302820160c0200000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000006121f2c3844505c66727f8b95a0aba89f92877d706b605d55534e4f4f495053555a61686d79829097a1a49f94897c6f6256493c2f231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080d111414171a1c1e1f20201f1e1d1a171414110e0803000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d40332c2d3034363838393938373633302d2c29241d1a140d050000000000000000000000000000000000000000000000000000000000000000000000000000000003070c10131416191b1d1e1f1f201f1f1e1d1b19171313100c07000000000000000000000000000000000814212d3945505a6164666666727f8b98a5aea194887b6e66666666666664615a5044392d20140800000000000000000000000000000000000000000000000000000000000000030c151d23282c2d3939393939393933312e2a231c130a000000020b151d252c313435393939393939393634312c261e150c0000000008111a22282d3031393939393939392e2d29241e160e040000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070000000713202d3a4653606d7984919ea7ada1968d80736b6059514b474342423f44464850565d676d7a85929b9993908c8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507080b0e10111213131211100d0b080705020000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d403327202427292b2c2c2c2b2a29262321201d18130e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0c0e1011121213131211100e0c0a0706040000000000000000000000000000000000000a1723303c4955616c71737373737f8b98a5aea194887b73737373737373706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000000030b12181c1f202c2d2d2d2d2d2d2625221e18110a0100000000030b131a202527282d2d2d2d2d2d2d292825211b140c0300000000000810171c2023242d2d2d2d2d2d2d21201d19130c04000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000004101d2935404b5564717d8a96a1acaa9e9184796d60594f45403937312d3337393e444c555e68717e8b8e8a86837f7c6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a171a1c1e1f201f1f1e1c1a171413110d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e80808080828f9ca8b3a79a8d80808080808080807e7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000070c1013131f202020202020191816120d070000000000000002090f14181b1b202020202020201c1b191510090200000000000000050b10141617202020202020201413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000613202c3945515d6775828f9ba8aea3988b7e71675d51473d352f2b2622272b2d323a434c56606d7883817e7a76736f6a5f53473b2e2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0d0f111213131211100d0a070604010000000000000000000000000000000000000000000000030608090f1112131313110f0c0707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828c8c8c8c8f949eaab5a99d928d8c8c8c8c8c8c8c8174685b4e4135281b0e020000000000000000000000000000000000000000000000000000000000000000000000040607131313131313130c0c0906010000000000000000000004080c0e0f131313131313130f0f0c0904000000000000000000000004080a0a1313131313131307070501000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000714202d3a4753606d7a86929facac9f92867a6d60554b403529241d1a171b1f2028313a44515c666d7775716d6866625f584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d010305050606050403000000000000000000000000000000000000000000000000000000030a0f1215151c1e1f1f201f1e1c181413110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9999999c9ea6b0b9aea49d9a9999999999998e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000a1723303d4a5663707d8998a3aea89b8e8275675d51433a2f23181d1d1d1d1d161f2834404a545c606a6864615e5655534e463c32261b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000060e151b1f2122282a2b2c2c2c2b292521201d19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9b9f9fa0acaeb5bdb1a9a3a19f9f9f9f9f9b8e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700000d1a2733404d5a6673808d99aab4aa978b7e7164554c4131282a2a2a2a2a2a2a2a2a232e39424a51535d5b5754524c4847433c342a20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000006101820262b2e2f3537383939393835322e2d2a251e19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e939393939fa3abb5a99f98949393939393938e8174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070004101c2834404b546975828f9ca8aea398887b6f6255483c2f3737373737373737373737373039404446514e4b4746413c3b37322a261f180f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0aca6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000030e18222a31373a3c42444546464644423f3a39363029241e160e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b68758186868686868b99a3aea3988d88868686868686868174685b4e4135281b0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d2013070006131f2c3845515c667884919eabac9f9286796d6053464444444444444444444444444444444444444444444444444444443b3a36312a21180e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939f9f9f998d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000000a15202a343c4347484f5152525352514f4b4746413a35302820191108000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2834414d59656f75797979797987929faca194887b79797979797979746f64594d4034271a0e0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000713202d3a4653606d7986939facaa9d908477665c50505050505050505050505050505050505050505050505050505050504846423b332a1f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693939393938d8073665a4d4033271a0d0000000000000000000000000000000000000000000000000000000000000000030f1b26313c464e53555b5d5e5f5f5f5e5c5854524c46413a322b231a12080000000000000000000000000000000000000000000000000000000000000000000000000000000c1925313d48535d65686c6c6c677683909da9a194887b6e6c6c6c6c6c6c68645d53483c3024180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000815212e3b4854616e7b879aa4afa99c90837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d55534d453b31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d78868686868686868073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000006121f2b37434e585f62686a6b6c6c6c6b6865615e56524c443d352c241a110800000000000000000000000000000000000000000000000000000000000000000000000000000915202c37424b53595b6060606774808d9aa7a194887b6e6160606060605b59534b41372b2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000916232f3c4956626f7c8995acb6a89c8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a615f574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c667679797979797979736e63584b3f3226190c00000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a6f7577787979797775726d68615d564f473e362c231a100600000000000000000000000000000000000000000000000000000000000000000000000000040f1b25303942484d4f53535764717e8a97a9a194887b6e6155535353534e4d4841392f251a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000a1623303d495663707c8996a3afa89b8e8177777777777777777777777777777777777777777777777777777777777777776e695f53463a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a545c6c6c6c6c6c6c6c6c66635c52473b2f23170a00000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7c81848585868584827e7a746d68605950483e352c22180d030000000000000000000000000000000000000000000000000000000000000000000000000009141e2730373d4142464854616e7b8796a1a194887b6e61554846464641403c372f271d1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000a1724303d4a5763707d8a96a3b0ab9e928583838383838383838383838383838383838383838383838383838383838383837b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424a505f606060606060605a58524a40362a1f130700000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a9091929292918f8b86807a706b615a50473e342a1f150b01000000000000000000000000000000000000000000000000000000000000000000000000020c151e252c3134353a46535e697884919ea194887b6e6155483b39393534302b251d150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000a1724313d4a5764707d8a97a3b0ada1979290909090909090909090909090909090909090909090909090909090909090887b6e6255483b2f221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2630383f4453535353535353534d4b4740382e24190e0200000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a979e9f9f9f9e9b98928d847d716c61594f463c31271d120700000000000000000000000000000000000000000000000000000000000000000000000000030c141b2025282a36424d576875828e9ba194887b6e6155483b2e2d282724201a130b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000a1724313d4a5764707d8a97a3b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d94887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e262e34384646464646464646403f3b362e261c12080000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a979e9ea2a9a9aaa39f9691877e716b61584e43392f23180c030000000000000000000000000000000000000000000000000000000000000000000000000002090f15191a25313f4c5965727f8c989f94887b6e6155483b2e221b1a18140f09010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000a1723303d4a5663707d8996a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa9aaaaaaaaaa94877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c23282c393939393939393933322f2a241c140a000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a92919297979c9fa6a9a19992877d706a5f554b4034291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000409091623303c4956636f7c89999393887b6e6155483b2e2215080c080300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d20130700091623303c4956636f7c8996a2afb0a69f9c9393939393939393939393939393939393939393939393939c9ea6b0aea398877a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f2d2d2d2d2d2d2d2d2726231f19120a02000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d87858585868a8f949fa2aaa39992867c6f675c51453b31261a0e03000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7987868686867b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000815222f3b4855626e7b8895a9b3ab9f948f8686868686868686868686868686868686868686868686868f949eaaac9f928579675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c101220202020202020201a1917130e080000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d79797878787a7d828a9298a1a9a2989083796d60574d42362a20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6775797979797976695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000714212d3a4754606d7a8797a2ada99c8f82797979797979797979797979797979797979797979797979828f9ca9ab9e9184786b554b4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030613131313131313130d0c0a07020000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d6d676b676d70767e869297a1aaa0958c8073695f53463c31261a0f0300000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b555c6a6c6c6c6c6c6c5f574d42372b1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4aca295897c6f6256493c2f23160900000d1a2733404d5a6673808d99a6aca09386796d6053463a2d201307000613202c3945515d677885929eabaa9d9184776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c667784919eaaa99c8f8376695c50432f24180d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b555c60605c555d60646c707c859298a3a79f92867b6e61584e43372b1f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39434b51535f6060606055534d453c31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b989f9f9f95897c6f6256493c2f23160900000d1a2733404d5a6673808d999f9f9f9386796d6053463a2d2013070004111d2935414c55697683909ca9ab9f928578695f606060606060606060606060606060606060606d7986929faca79a8d8174675a4e4134271b070000000000000000060b0e10111313131313130f0e0c0904000000000000000000000003070b0d0e13131313131312110f0c0701000000000000000000000004080a0b1313131313131308070502000000000000000000000001060b0f11111313131313120706030000000000000000000000000000000000000000000000000000000000000000000000000000000c18232f39434b515353514b51535a616a6f7c86929fa7a3988e81756a5f53473b30251a0e0100000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303940454653535353534846423c332a1f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b9393939393897c6f6256493c2f23160900000d1a2733404d5a6673808d939393939386796d6053463a2d20130700010d19242f414d5a6774808d9aabaea298887b6e61555353535353535353535353535353535355626f7c8899a3afa9988b7e7265584b3f3225180c000000000000040b12171b1d1e2020202020201c1b19150f09020000000000000001080e13171a1a2020202020201f1e1b18130c050000000000000000050c11141717202020202020201514120e09030000000000000000040c12171b1d1e20202020201f1312100c060000000000000000000000000000000000000000000000000000000000000000000000000007121d27313940454747454045475058606a727f8c959faa9f93877c6f62574d42362a1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a46464646463b3a37312a21180e030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e868686868686867c6f6256493c2f23160900000d1a2733404d5a66738086868686868686786d6053463a2d2013070000081724313d4a5764707d8a99a3afaa988b7e7165574d42464646464646464646464646424d5765727f8c98abada297887b6f6255483c2f2215090000000000050e161d23272a2b2d2d2d2d2d2d282825201b140c030000000000020b12191f2326272d2d2d2d2d2d2b2b28241e170f060000000000000810171c2123242d2d2d2d2d2d2d22211e1a140e06000000000000060e161d23272a2b2d2d2d2d2d2c201f1c17110a030000000000000000000000000000000000000000000000000000000000000000000000010b151f272f34383a3a3835393e464e58606c7883909da6a49a8e8175695e5246392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d39393939392e2d2b261f180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313d4a56626c71797979797979796f6a6054473b2e22150800000c1926323f4b58636e737979797979797976665c5044382c1f120600000714212e3a4754616d7a86929faca89b8e8275695e53463d313939393939393939303946525e6976828f9ca9ab9e9285786c605346392d20130600000000040e1720282e3336373939393939393534312c251e150c02000000010b141d242b3033343939393939393837342f2921180f050000000008121a22282d3031393939393939392e2d2b261f180f0600000000040e1820282e3337383939393939392d2c28231c150c030000000000000000000000000000000000000000000000000000000000000000000000030d151d23292c2d2d2c292c343d44505b666f7c89949eac9f92877b6e61554b4034291c100400000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f202c2d2d2d2d22211e1a140e0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915212e3a45505a62656c6c6c6c6c6c6c6260584e43382b1f130600000a17232f3b47525c63666c6c6c6c6c6c6c6c5c544a3f34281c100300000713202d3946525d6876828f9ca8ac9f92867b6e61584e433b322c292424292c3139424d57616e7b86929faca89b8e8174655b5044372b1f1205000000000b16202932393f434446464646464642413d3730271e140900000008121d262f363c3f414646464646464544403a332b21170c01000005101a242c33393c3e464646464646463b3a37312a21180e030000010c16202a323a3f43444646464646453a38342e261e150a000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f20201f1d2228333f4a54606b75828f9ca8a3998d8073675c5145382c1f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131320202020201514120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d29343f485056586060606060606056544e463d32271b0f03000007131f2a36404a52585a606060606060605f504a42382e23170c00000005111d2935414c5664717e8a96a1ada3998d80746a60564d443e39352f2f35383c434b545e6973808d99a3aca0968a7d706353493f33271b0f0300000006121d28323b444b4f515353535353534f4d48423930251b0f0400030e19242f3840474c4d53535353535352504c453d33291e130700000c17222c363e45494a535353535353534846423c332a1f1409000006121d28323c444b4f5153535353535246443f3830261c110600000000000000000000000000000000000000000000000000000000000000000000000001070c10131414131017222d38424f5963707d8995a0ab9e9285796d6053473b31261a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406071313131313080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c18222d363f454a4b535353535353534947433d342b20160a000000020e19242e3840474b4d5353535353535353443f3830261c1106000000010d1924303a4653606d7984919ea7ab9f92877c6f685e564f47454141414045474e555c666e7b86929faba89e9184786c605346392d22170b000000000b17232e39444d565b5e6060606060605b59534b42372c2015090007131f2b36404a52585a6060606060605e5c574f453a2f24180c0004111c28333e485055576060606060606055534d453c31261a0e02000b17232e3a444e565c5e60606060605f53504a42382e23170c000000000000000000000000000000000000000000000000000000000000000000000000000000040607070606111c262f3d4854606b7784919daba2978a7e7164574d42362a1b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d343a3d3e464646464646463c3b38322b22190f040000000008121c262e363b3f40464646464646464638342e261e150a000000000008131f2c3845515c66727f8b95a0aba39991847a6e68615954514c4e4e4b5153575f676d78839098a2aca0968b7f72665b5044382b1b1106000000020e1b27333f4b565f676a6c6c6c6c6c6c68655d53483d3125190c000b1723303c47525c64676c6c6c6c6c6c6b6861574c4034281b0f030814212d3945505a61646c6c6c6c6c6c6c6c5f574d42372b1e1205000f1b27333f4b5660676b6c6c6c6c6c6c605c544a3f34281c100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d2c38444f5965727f8c99a3a99c8f8276695f5346382d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292e3132393939393939392f2e2b27201910070000000000000a141c242a2f323339393939393939392c28231c150c03000000000004101c2834404b54606d78839199a3aba09690837a706b64605d555b5b555d60636a6e79818e959faaa49a9184796d60544a3f33281c0a0000000004101d2a36434f5b677177797979797979756f65594d4134281b0e020d1a26333f4c58646e747979797979797873685c5044372b1e11050a1723303c4955616c717979797979797976695f53463a2d21140700111d2a37434f5c6772777979797979786d665c5044382c1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b1c27333d4754616d7a86929fac9f93877b6e6153493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d2124252d2d2d2d2d2d2d23221f1b160f0700000000000000020a12191f2326272d2d2d2d2d2d2d2d1f1c17110a03000000000000000c18232e3944515c666f7c87929fa4a8a09590847d76716d6769676869676d70757b838e939ea7a69f93887d70665c5142382d22170b0000000004111e2b3744515e6a77848686868686868175685b4f4235281c0f020e1a2734414d5a67748086868686868685786b5e5245382b1f12050b1724313e4a5764717e868686868686867b6e6155483b2e22150800111e2b3844515e6b7784868686868686786d6053463a2d2013080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b13202d3a4653606d7985929eaba49a8c8073655b5044372b1f1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11151718202020202020201615130f0a0400000000000000000000080e1317191a202020202020202012100c0600000000000000000007121d2834404a54606b727f8c929ca4a7a096918a827d7a7775747475767a7d818790959ea5a59e938d80736b61544b402f261c11060000000004111e2b3744515e6a778491939393938e8275685b4f4235281c0f020e1a2734414d5a6774808d939393939185786b5e5245382b1f12050b1724313e4a5764717d8a9393939393887b6e6155483b2e221508000e1b2734414e5a6774818d93939398897c6f6356493c2f24190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c5664707d8a97a1adac9e9184786c605346392f24180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105090b0b13131313131313090806030000000000000000000000000002070a0c0d131313131313131306030000000000000000000000000c18232e39424f59626d73808c929ea1a8a19e948f8a8683828181828386898e93999fa7a39f938f81786d60594f42392e1d140a000000000004111e2b3744515e6a7784919d9f9f9b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9a9f9f9e9185786b5e5245382b1f12050b1724313e4a5764717d8a979f9f9f94887b6e6155483b2e221508000a1724313d4a5764707d8a99a3aa998c807366564c4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e6875828f9ba9b3aca196897c6f63554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c27303d46515b646e73808a92979fa3a69f9c9992908f8e8e8f9092989b9fa4a69f99928c81796d665c50473d30271d0b02000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aca194887b6e6155483b2e221508000714212d3a4754606d7a86929fa99d908376685d5245392c201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86929facb9b2a89a8e8174675d5145382c1f14080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003070909131313131313130b0a0804000000000000000000000000000407090a131313131313130a090704000000000000000000000000000b151e2b343f49525c646e737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a29f9b948f877f776d675c544a3f352c1e150b00000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000613202c3945515d677683909ca99f92867a6d6054473a2d21140900000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5865727f8c99a3aeb7b8ab9f9285796d6053473b3025190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020171714110c05000000000000000000050b1014161720202020202020171614100b050000000000000000000000030c19222d37404a525c636c707a81868d9196989b9c9e9f9f9f9f9e9d9b9997928e89827c736c655c554b42382e231a0c0300000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080004111d2935414c5566737f8c99a9a3998a7d7164574a3e31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a7783909dabacababaea2988a7e7164564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b1f22232d2d2d2d2d2d2d2423211c171008000000000000000810161c2023232d2d2d2d2d2d2d2323201c161008000000000000000000000007101b252e38404a525a61686d747b8084888b8e90919292929291908e8c8985817c766f6a605b534b433930261c11080000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800010d19242f3c4956626f7c8997a2ab9a8e817467574d42372b1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55626f7c8895a0a8a19e9fa2aa9c8f8275685e5246392d20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101921272c2f303939393939393931302d28221a1208000000000008111a21272c2f3039393939393939302f2c27211a1108000000000000000000000009131c262e37404850565e61696e73787c7e818384858686858583817f7c79746f6a625f585049413930271e150a000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000813202d394653606c7985929eab9e918478695f53463a2d2114060000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6774808d9aa7a196919298a29f92867a6e6154473c31261b0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b32383b3c464646464646463e3c39332c241a100500000005101a232c33383c3d464646464646463d3c38332c231a100500000000000000000000010a141c252e363e444c52575e61666a6f7274767878797978787675726f6d66626058534e443f382f271e150c03000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000006121f2b3844505b6675828e9ba8a196887b6e6155483b2e23170c000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929fab9e918485929fa3998c7f7265584e43372b1c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b353d434849535353535353534a49453e362c22170c0000000b16212c353d44484a535353535353534a48443d352c21160b0000000000000000000000020a131c242c323a41464d5254585f626568696b6c6c6c6c6b6a686663605c54544e47433c332d261d150c0300000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000030f1c28333f4a5465717e8b98a8a8988b7e7265544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36424d5764717e8a97a2a99a8d80818e9baa9d9083776a5f5347382e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d474f545660606060606060575550483e33281c11040004101c27333d474f55566060606060606056554f473d33271c10040000000000000000000000010a121a202830363b4246484e5355585b5d5e5f5f5f5f5e5d5b595653514b47433d373127221b140b030000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000b17222d3b4854616e7b8795a0a89b8f8275665c5044382c1f120600000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e6976828f9ca9a297897d7d8a98a2a095887c6f62544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c38434f5960636c6c6c6c6c6c6c64615a5045392d211408000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c20140700000000000000000000000000080e161e252a30363a3c4347484b4e50515253535252504e4c494645403937322b262017110a02000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000614202d3a46525e697784919daa9f9285796d6053463a2d20130800000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b87939fab9e9285797985929fa79a8d8073665c5044382b1f1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f79797979797979716c6155493c3023170a000916232f3c4855616b7079797979797979706b6155483c2f2316090000000000000000000000000000050c13191f252a2d32373b3c3f414345454646454543423f3c3a38342e2b27201b150b060000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000005121e2a36424d576774808d9aaaa298897c6f6356493c2f24190d0100000000000000000000000000000000000000000000000000000000000000000000000007131f2c38434f5966727f8c99a4aa9b8e817475818e9baa9e9184796d6053463a2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7d868686868686867e7164574a3e3124170b000a1723303d4a5663707d868686868686867d7063564a3d3023170a00000000000000000000000000000002080d141a1e20262b2e2f323536383939393938373533302d2c28231d1b150f0a03000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000020e1a25303d4a5763707d8a98a3aa998c807366564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b7784919eaba2988a7d70707d8a98a2a197897d7063554b4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8993939393938a7d7164574a3e3124170b000a1723303d4a5663707d899393939393897d7063564a3d3023170a000000000000000000000000000000000003090e12151b1f212225282a2b2c2c2c2c2b2a282623201f1c18120f0a040000000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000914202d3a4753606d7a86929fa99d908376685d5245392c201307000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55636f7c8996a0ab9f9285796d6d7985929fa99b8e8175675d5145392c201409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c89969f9f9f978a7d7164574a3e3124170b000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a0000000000000000000000000000000000000002050a0f121515181b1d1e1f20201f1f1d1b19161313100c070000000000000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000006131f2c3945515d6776828f9ca99f92867a6d6054473a2d21140900000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6774818e9aa8aa9b8e8175676775818e9baa9f92867a6d6054473b31251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2aca4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a00000000000000000000000000000000000000000000030608090c0e10121213131212100f0c0907060400000000000000000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000004101d2935404b5566727f8c99a9a3998a7d7164574a3e31261a0e02000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a85929faca3988a7d716464707d8a98a2a2988b7e7165574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000c18242f3c4955626f7c8897a1ab9a8d817467574d42372b1e120500000000000000000000000000000000000000000000000000000000000000000005121e2a36424d5764717e8b98a2ac9f92867a6d60606d7985929faa9c8f8376695e53463a2d21160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000000000000000000000000000000000020608080c0f111213131312100e0c08070502000000020404060606060606000000000000000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000713202d394653606c7885919eaa9e918477695f53463a2d2114060000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f6976838f9caaaa9b8f8275675d5d6775828e9baa9f93877b6e6154483d32271b0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000000000000000000000000000003090e121415191b1d1f1f201f1f1d1b191514120e09030b0e10111313131313130b0b09050100000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000005121f2b3744505b6575818e9baca096887b6e6155483b2e23170c0000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7b87939faca2988a7e7164555564717e8a98a3a49a8c7f7366584e43382b1d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000000000000000000000000060b0f151a1e212225282a2c2c2d2c2b2a282522211e1a1410171b1d1e202020202020181715110c06000000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000030f1b27333f495364717e8b9aa4a8988b7e7265544a3f34281c10030000000000000000000000000000000000000000000000000000000000000006121f2b3844505b6673808c9aa4ac9f92867a6d605454606d7a86929fac9d9184776a605447392e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000000000000000000000020a11171b1f262b2e2f32353738393939383735322e2d2b261f1c23272a2b2d2d2d2d2d2d2524211d1811090000000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000b17222d3b4754616e7a87939fa89b8f8275665c5044382c1f1206000000000000000000000000000000000000000000000000000000000000000613202d394653606c7884919eaca99b8e8175675d51515d6775828f9caba096897c6f62544b4034281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000000000000000000060b141b22272b31373a3b3f4244454646464543413f3b3a37312c282e33363739393939393932312e29221b120900000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000614202d3946525e687783909daa9f9285796d6053463a2d20130800000000000000000000000000000000000000000000000000000000000004111d2935414c5663707d8996a1aca1978a7d7063554b4b5564717e8b99a3a89a8d8174665c5145382c1f1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000000000000000080f181d262d33373c4247484c4e505252535252504e4c4846423c3834393f43444646464646463e3d3a342d241b1106000000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f12050b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000005111e2a36414c566773808d9aaaa298897c6f6356493c2f24190d0100000000000000000000000000000000000000000000000000000000000613202c3945525d6875818e9ba8ab9e9285796d6053464754616d7a86929fab9e9285796d6053463a3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000000000000008111a212a2f383f44464d5355585b5d5f5f605f5e5d5b5855534d46443f444b4f515353535353534b4a453f362d22180c010000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e5245382b1f07000b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000010d1925303d495663707d8998a2aa998c807366564c4135291d110400000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86929faca89a8d8174665c514446525d6876828f9caba2978a7d7064564c4135291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000000000000008111a232c333c41495053575f6265686a6b6c6c6c6b6a6865615f5753504a4e565b5e606060606060585650483f34291d11050000000004111e2b3744515e6a7784919daaa89b8e8275685b4f4235281c0f020e1a2734414d5a6774808d9aa7ab9e9185786b5e52452f24180c000b1724313e4a5764717d8a97a4aea194887b6e6155483b2e221508000000000000000813202d3a4653606d7985929fa99d908376685d5245392c2013070000000000000000000000000000000000000000000000000000000006121f2b37434e5865727e8b98a2aca096897c6f63544a40414c5665727e8b99a4a99b8f8275685e5246392d2015090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000000000060f1a232c353e454d535b6064696e72757778797979787674726e6964605c545660676a6c6c6c6c6c6c65625a50453a2e2115090000000004111e2b3744515e6a7784919daaa89b8f8275685c4f4235291c08000e1a2734414d5a6774808d9aa7ab9e9285786b554b4035291d10040b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000006131f2c3845515c6775828f9ca89f92867a6d6054473a2d211409000000000000000000000000000000000000000000000000000000000814212e3a47535f6a7683909daaaa9e9184776b605442393b4754616e7b86939fac9f92867a6d6154473c31261a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000000000020b18212c353e474f575f656c71767b7f8183858586858583817f7b77716d665f58677277797979797979716c62564a3d3124170b0000000004111e2b3744515e6a7784919daaa99c8f8376695c50433025190e020e1a2734414d5a6774808d9aa7ac9f928679675d5145392c1f13060b1724313e4a5764717d8a97a4aea194887b6e6155483b2e2215080000000000000004101c2834404b5565727f8b98a8a3998a7d7064574a3d31261a0e02000000000000000000000000000000000000000000000000000003101c28343f4a54626e7b88959faba7998c807366594f43303946525e687683909ca9a3998b7f7265574d42372b1b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000000000a141d2a333e474f5961696e787e83888b8e909292939291908e8b88837e786f6a606a77848686868686867e7165584b3e3225180b0000000004111e2b3744515e6a7784919daaaa9d9083776a564c41362a1e11050e1a2734414d5a6774808d9aa7afa399867a6d6053473a2d2014070b1724313e4a5764717d8a97a4aea194887b6e6155483b2e22150800000000000000000c18232e3b4855626e7b8896a1ab9a8d817467574d42372b1e1205000000000000000000000000000000000000000000000000000006121f2c3844505c6673808d9aa7ab9f95887b6e6255483d3236414d5665727f8c98a7ab9d908376695f5347382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000000006111b262f3c454f59616b707b838a9095989b9d9e9f9f9f9e9d9b9895908b837c706b67798592939393938a7d7164574a3e3124170b0000000004111e2b3744515e6a7784919daaab9e918578685e5246392d2014070e1b2834414e5b6774818e9aa7b5ab94887b6e6155483b2e2215090b1825313e4b5864717e8b97a4aea194887b6e6155483b2e22150800000000000000000714212e3a47535f6a7884919eaa9e918477695f53463a2d21140600000000000000000000000000000000000000000000000000000713202d3a4653606d7985919eabab9d908377695f53473a2b303b4854616e7b8795a0ab9f95887b6e6253493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000000b17222d38414d57616b707d8690959d9fa7a8aaaaa39f9e9e9e9fa3a09d9590867d706d798698a29f9f96897d7063564a3d3023170a0000000004111e2b3744515e6a7784919daaada197877a6e6154473b2e23180b0f1b2835424e5b6875818e9ba8b0a3978a7d7064574a3d31261a0d0c1825323f4b5865727e8b98a5aea194887b6e6155483b2e221508000000000000000006121f2b37434e586774818e9aaba096887b6e6155483b2e23170c0000000000000000000000000000000000000000000000000005111d2a36414c5663707d8a97a1ada3998c7f7265574d42372b2d3a46535e697783909daaa7998d8073655b5044372b1f1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000000030f1b27333f49535f69707d8792989fa7aba7a09d9898929191919299989d9f9892877d707a8794aab4a396897c706356493d3023160a0000000004111e2b3744515e6a7784919daab3a9968a7d7063554b4034281d14111c2935424f5c6875828f9ba8b3a6998c807366584e43372b1f16111926323f4c5965727f8c98a5b5ab94877a6e6154473b2e2114080000000000000000020f1a26313e4a5764717d8a99a4a8988b7e7265544a3f34281c10030000000000000000000000000000000000000000000000000713202d3946525e6875828f9ba9ac9f92867a6e6154473c31262a36424d5766727f8c99a7ab9e9184786c605346392f24180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000005121f2b3744505b656e7b859299a2aaaaa39f95918b888584848586888b90959e9992857b7b8894a1aea295897c6f6256493c2f2316090000000004111e2b3744515e6a7784919daab4a79a8d8074675c51453a2f26201d1e2b37424d576a7783909daab6a99d9083766a5f53473c3128201e1d27333f49536774808d9aa7aea399877a6d6054473a2d2114070000000000000000000a14212e3a4754616d7a86939fa89b8f8275665c5044382c1f12060000000000000000000000000000000000000000000000000714212e3a4754616d7a86929facaa9c8f8276685e5246392a2025313b4855626e7b8895a0aca196897d7063554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000000030f1b27333f4953606c77829097a2abaaa398928b837f7b79787778797b7f83899196978f827c8895a2aea295897c6f6256493c2f2316090000000004111e2b3744515e6a7784919daab7ab9f9285796d60564c42382f2c292a2d3a47535f697885929fabb8ab9f95887b6e62584e4339312d2a2a2d3744505b6576828f9ca9ac9f928679685d5245392c2013060000000000000000000713202d3946525d687683909da99f9285796d6053463a2d201308000000000000000000000000000000000000000000000006131f2b37434e5865727f8b99a3aea2988b7e7164564c41362a18212e3a47535f697784919daaa89b8e8174675d5145392c1f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000005121f2b3744505b65717e8a949fa9aea39892867f78726e6c656b666d6e72767d849094948c7f8c99a5afa295887c6f6255493c2f2216090000000004111e2b3744515e6a7784919daab7ada2978b7e71685e544a423c3935363a3f4a54616e7b8898a2aeb5afa79a8d80746a5f554b433d393636393d4653606c7985919eabaa9e9184776b564c4135291d110400000000000000000005111d2935414c566673808c99aaa298897c6f6356493c2f24190d01000000000000000000000000000000000000000000000815222e3b47545f6a7783909dabac9f92867a6d6054473b3025191e2b37424d576673808c99a8ab9f9285796d6053473b3025190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000000613202d394653606c7883909da6b0a79f92867d726c6662605b545c6062656b707a8290959286929facafa295887c6f6255493c2f2216090000000004111e2b3744515e6a7784919daab1a7a09d92857a6d665b544e474541424648505b66727f8c98aab4aba49f9d92877c6f675d554f4746414146474e58626f7c8997a1ada99c8f8276695c4f432f24190d01000000000000000000010d1924303c4956636f7c8998a2aa998c807366564c4135291d110400000000000000000000000000000000000000000004101c2834404b55626f7c8895a0aca99b8e8175675d514539291e141a26313c4955626f7c8896a0aca2988a7e7164564d42362a1e110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0000030f1c28333f4a5463707d8995a0acab9f958b7e716b605b5453504a5053555961686d798391999299a3aeafa295887c6f6255493c2f2216090000000004111e2b3744515e6a7784919daaaca09590958e81786c665f5854524c4d53555a606c7883909daaafa4999390959083796d67605954524c4c525458606a74818e9aa9b3aa998d8073665a4d4033271a0800000000000000000000000813202d3a4653606d7985929fa99d908376685d5245392c20130700000000000000000000000000000000000000000006131f2c3845515c6774808d9aa7ada1978a7d7063554b413529170d15212e3b47535f6a7784919eaaaa9c8f8276695e52463a2d20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000006121f2b3844505b6674818e9ba7b1a99d9083766d6259504a46443f4446484f565d676f7c87929fa3abb4afa295887c6f6255493c2f2216090000000004111e2b3744515e6a7784919daaaa9d908490938e81786e6a64605d56575f61646c727f8b95a0acac9f93878390958f82796f6b64615e56565e61646a6f7c87929facaea298897d7063564a3d3023170a000000000000000000000006121f2c3844505c6675828f9ba89f92867a6d6054473a2d2114090000000000000000000000000000000000000000000713202d3a4653606d7985929eabab9e9285796d6053463a2f241807131f2b37434e586773808d9aa8ac9f93877b6e6154473c32261b0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000613202d394653606c7985929eabada1978a7d70645a50443f393734383a3d444c555f6a74818e9aa7b1bdafa295887c6f6255493c2f2216090000000005111e2b3844515e6b7784919eaaa4978b7e8491938e827c75716d686b6b696e71767e87929fa7b1a79c8f827b8692948f837c75716e686b6b686d70757c859299a3afaa9f9285796d6053463a2d201307000000000000000000000003101c28343f4a5465727e8b98a8a3998a7d7064574a3d31261a0e020000000000000000000000000000000000000005111e2a36424d5664717d8a97a2ada89a8d8174665c514438281d13070f1b26323c4956626f7c8996a1ada4998c7f7265584e43372b1c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000916232f3c4956626f7c8997a2adab9e9285796d6053463f332d2b282c2d323a434e58626e7b88959fabb8afa295887c6f6255493c2f2216090000000005111e2b3844515e6b7784919eaaa3978a7d7d8992948f86817d7a797778797b7e838b9299a3afaba0958a7e737f8c94959087827e7a797878797a7d82889297a1abaea3988d8074665c5145382c1f13060000000000000000000000000c17232e3b4855616e7b8896a0ab9a8d817467574d42362a1e1205000000000000000000000000000000000000000714202d3a46525e6975828f9ca9aca096897c6f63544a403428160c010a13202d394653606c7884919eabab9d9084776a5f5347382e23170c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00000c1926323f4c5965727f8c98a9b3a79b8e8174665c50443828221f1c1f2028313c47535f6a7683909da9b6afa295887c6f6255493c2f2216090000000005121e2b3845515e6b7884919eaba3968a7d73808d9499928e8a8785848585888b90959fa3abaea3999183786d78828f959a938f8b8786848485878a8e939aa1a9afa59f92867b6e61544b4034281c10040000000000000000000000000614212d3a46535f697784919eaa9e918477695f53463a2d211406000000000000000000000000000000000000000814212e3b4754616e7b86929facaa9e9184776b605442392e2318040005121f2b3744505b6574808d9aa9aca095887c6f62544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a00020f1b2835424e5b6875818e9ba8b5ab988b7e7165544a3f342817121012161f2b37434e5866727f8c99abb5afa295887c6f6255493c2f2216090000000005121f2b3845525e6b7885919eaba396897c7078828f949f9b97989291919298979d9fa7aeaaa29f92877d70666d7a8390959f9c97999291919298979b9fa4acaca49f938c7f72695e5342392e23180c0000000000000000000000000005121e2a36424d576774818d9aaba096887b6e6155483b2e23170b00000000000000000000000000000000000007131f2c38434f5966727f8c99a3afa7998c807366594f4330271c120700030f1b27333f495363707c8997a1ada79a8d8074665c5044382c1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a0005111d2a36414c566a7784909daaafa499887b6f6255483c2e23170603060d1a26313c4956626f7c8999a3afafa295887c6f6255493c2f2216090000000004101d2935404b556c7885929f9f9f95887c6f6d79828d939a9fa29f9e9e9fa3aaa9a9aba39f98928a7f726b60686d7a838d939a9fa39f9e9e9fa2aaa8a9aba49f9a938c81776c60574d4230271d120700000000000000000000000000020e1a26313d4a5764707d8a99a3a8988b7e7265544a3f34281c100300000000000000000000000000000000000915222f3b4854606b7784919d9f9f9f95887b6e6255483d3222150b0000000b17222d3a4653606d7985929e9f9f9e9185796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000713202d3946525e687985929facac9f93867a6d6053473a2d20140600000913202d3a4653606d7986929facafa295887c6f6255493c2f221609000000000613202c3945515d6779869293939393887b6e676d7880878f93999b9d9e9f9f9f9e9c9a99928e867e726d62595e686d7980878e92999a9c9e9f9f9f9e9d9a99938e877f746c655b50453b311e150b0000000000000000000000000000000914212d3a4754606d7a86929fa89b8f8275665c5044382b1f12060000000000000000000000000000000000091623303c4956636f7c8996939393939083776a5f53473a2e21140300000006121f2b3844505c6674818e93939393978a7d7063574a3d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000714212e3a4754616d7a8798a2aeab9e918478675c5145382c1f1306000006131f2c3845515c667784919daaafa295887c6f6255493c2f221609000000000714202d3a4753606d79868686868686867a6d61666d737c82878b8e909192929291908d8a86817b716c625b51565e676d737c81868a8d909192929291908e8a87817c736d605b53493f33291f0c030000000000000000000000000000000613202c3945515d677683909ca99f9285796d6053463a2d20130800000000000000000000000000000000000e1b2834414e5b677481868686868686867f7265574e42372b1e120600000003101c28343f4a5463707d868686868686868175685b4f4235281c0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000915222f3c4855626f7b8895aab4a99d9083766a554b4034291c1004000004101c2834404b546975828f9ca8afa295887c6f6255493c2f221609000000000613202c3945515d67767979797979797976685e5c606a6f757a7e8183858586858483817e7a746e69615a51494c555c606a6f757a7e8183848586858483817e7b756f6a635b504941382d21170d0000000000000000000000000000000004111d2935414c5566737f8c99a9a297897c6f6356493c2f24190d01000000000000000000000000000000000d1a2733404c59646f7479797979797979726d6256453c31261a0e02000000000b17232e384855616b7079797979797979756f65594d4034271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000a1623303d495663707c8996a3afa89c8f8275695c4f422f23180c000000000c18232e414e5a6774818d9aa7afa295887c6f6255493c2f2216090000000004101d2935404b555d6c6c6c6c6c6c6c6c6c5e5651586062686d71747678797978787674716d67615e5750483f434b51585f62686d71747678787978777674716e69625f5851443f382f261b0f0500000000000000000000000000000000010d19242f3c4956626f7c8997a2a9998c807366564c4135291d1104000000000000000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c65625b5146332a201509000000000006111c2c38444f5961636c6c6c6c6c6c6c68655d53483d3125180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000a1724313d4a5764707d8a97a3b0a89b8e8175685b4e4235281b0700000000071a2633404d596673808c99a6afa295887c6f6255493c2f22160900000000010d18242f39434b515f606060606060605f524c454e54565e6165686a6b6c6c6c6b696764605d55534d453e363940454e53565d606467696b6c6c6c6b6a6764615e57534e4640332d261d140a0000000000000000000000000000000000000813202d394653606c7985929ea99d908376685d5245392c201306000000000000000000000000000000000814202b36414a53595b60606060606060595651493f3521180e03000000000000101c28333e474f5557606060606060605b59534b41372c2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f221609000000000007121d283139404553535353535353535346413c43474c5254585b5d5e5f5f5f5e5d5a5754514c46423b332c2e343c43474c5254575a5d5e5f5f5f5e5d5b5754524d47433c3427221b140b0200000000000000000000000000000000000006121f2b3844505b6675828e9ba89f92867a6d6054473a2d21140900000000000000000000000000000000030f1a252f3841484c4e535353535353534c4a463f372d230f06000000000000000b16212c353e44484a535353535353534f4d4841392f251a0f040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f2216090000000000010c161f282f3539464646464646464646393632373a4146474b4e505252535251504e4b4745413a36312921232831373a4145474b4e505152535251504e4b4746423b37312a2217110a0200000000000000000000000000000000000000030f1c28333f4a5465717e8b98a7a3998a7d7064574a3d31261a0e020000000000000000000000000000000008131d262f363c4041464646464646463f3e3a352d251b11000000000000000005101a232c33383c3d4646464646464642403d372f271e1309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f221609000000000000040d161d24292c39393939393939392e2d2a272b3036393a3e4143454646454543413e3a39352f2a251f171820262b2f35393a3e4143454546454443413e3b3a36302b2620181006000000000000000000000000000000000000000000000b17222d3b4854616e7b8795a0ab9a8d817467574d42362a1e120500000000000000000000000000000000010b141d252b3033343939393939393932312e29231b130900000000000000000008111a21282c2f30393939393939393534312c251e150c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000b1824313e4b5764717e8a97a4b1a79a8d8074675a4d4134271a0e010000000b1825323e4b5865717e8b98a4afa295887c6f6255493c2f22160900000000000000040c12181d202d2d2d2d2d2d2d2d21201d1b1e252a2d2e32353738393939383634312d2c29241e1a140d0c151a1e24292c2d31343638393939383734312e2d2a251f1b150e0600000000000000000000000000000000000000000000000614202d3a46525e697784919daa9e918477695f53463a2d2114060000000000000000000000000000000000020b131a202427282d2d2d2d2d2d2d2625221e18110901000000000000000000000810161c2023242d2d2d2d2d2d2d282725201a130c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000c1825323f4b5865727e8b98a5afa295887c6f6255493c2f221609000000000000000001070d101320202020202020201413110f13191e202125282a2b2c2c2c2b2a272421201d19130e0903030a0f13191d202124272a2b2c2c2c2b2a282421201e1a140f0a0300000000000000000000000000000000000000000000000005121e2a36424d576774808d9aaaa096887b6e6155483b2e23170b00000000000000000000000000000000000001080f14181a1b20202020202020191816120d0700000000000000000000000000050b10141617202020202020201c1b18140f09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3b0a396897d7063564a3d3023170a000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e4235281b07000000000c1926323f4c5965727f8c98a5afa295887c6f6255493c2f22160900000000000000000000010406131313131313131307070502080d111314181b1d1f1f201f1e1d1b181413110d08010000000001080d111314181b1d1e1f201f1e1d1b181414110e09020000000000000000000000000000000000000000000000000000020e1a25303d4a5763707d8a98a3a8988b7e7265544a3f34281c10030000000000000000000000000000000000000003080b0d0e131313131313130c0b090601000000000000000000000000000000000407090a131313131313130f0e0c080400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a000916232f3c4956626f7c8995acb6a89b8f8275685c4f422e23180c000000000d1a2633404d596673808c99a6afa295887c6f6255493c2f2216090000000000000000000000000006060606060606060000000000010507070b0e101213131212100e0b070604010000000000000000010406070b0e101212131211100e0b0807050200000000000000000000000000000000000000000000000000000000000914202d3a4753606d7a86929fa89b8f8275665c5044382b1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a000815222e3b4855616e7b889aa4afa99d9083766a544b4034281c10040000010e1b2734414e5a6774818d9aa7afa295887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d6776828f9ca99f9285796d6053463a2d201308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d899393939393897d7063564a3d3023170a000714202d3a4753606d7a86939facab9e918478665c5145382c1f1306000004111d2935404b556976828f9ca9afa295887c6f6255493c2f22160900000000000003080b0d0e13131313131313131313131313131313131313131313131313131313131313131311100e0a060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5566727f8c99a9a297897c6f6356493c2f24190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d868686868686867d7063564a3d3023170a0006131f2c3845515c677885919eabac9f9286796d6053463a2d20130600000613202c3945515d677784919eaaafa295887c6f6255493c2f2216090000000001080f14181a1b2020202020202020202020202020202020202020202020202020202020202020201e1d1a16110b040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3c4955626f7c8897a1a9998c807366564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000916232f3c4855616b7079797979797979706b6155483c2f2316090004101c2934404b556976838f9ca9afa399887b6f6255483c2d22170b00010714202d3a4753606d7a86939facafa295887c6f6255493c2f221609000000020b131a202427272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2927221c150d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d394653606c7885919ea99c908376685d5245392c2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c20140700000c18232f414d5a6774808d9aa7b5ab978b7e716453493f33271b0f0b0e121c28333f4a5463707d899aa4afafa295887c6f6255493c2f2216090000010b141d252b3033343939393939393939393939393939393939393939393939393939393939393939393736332e271f170d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b6575818e9bac9f92867a6d6054473a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0004101c27333d474f55566060606060606056554f473d33271c10040000071824313e4b5764717e8a97a7b1a79a8e8174655b5044372b211b171a1d242b3844505b6673808d9aacb6afa295887c6f6255493c2f221609000008131d262f363c404146464646464646464646464646464646464646464646464646464646464646464644423f3931291f150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495364717e8a9aa4a3998a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00000b16212c353d44484a535353535353534a48443d352c21160b0000000814212e3b4754616e7a8795a0acab9e9184786c6053463e332b2722252a2f35404a54606c7884919eabb8afa295887c6f6255493c2f22160900030f1a252f3841484c4e535353535353535353535353535353535353535353535353535353535353535353514f4a433b31271c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3a4754616d7a87939393938d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000005101a232c33383c3d464646464646463d3c38332c231a10050000000714202d3946525e687783909dabada197897d70635a50453d37332d3136394045515c66717d8a96a1adb9afa295887c6f6255493c2f221609000814202b36414a53585a6060606060606060606060606060606060606060606060606060606060606060605d5b554d43392e22160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d3946525e687783868686868684776b5e5144382b1e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000008131e28313a414547494949494949494745413a31281e130800000005111e2a36414d5666727f8c99a3afa99c8f82766c61574f46443f414142464b515a606d7883919da8b0b8afa295887c6f6255493c2f221609000b1824303c48535c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f554a3f33271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c5667717779797979797772675c4f43372a1d110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b00010d19242f3a434c52545656565656565654524c433a2f24190d010000020e1925303b4854616e7b87929fabab9f948a7d706960595350494e4e4d53555d606c73808c959c9ea6b0afa295887c6f6255493c2f221609000d1a2733404c58646e747979797979797979797979797979797979797979797979797979797979797979797771675b4f4236291d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a44555f676a6c6c6c6c6c6b6760564b3f33271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b0004111d2935414c565d6062626262626262605d564c4135291d11040000000814202d3a46525e6975818e99a3afa69e92857b6f6b62605b535a5b575e61676d737e8893948f949eaaafa295887c6f6255493c2f221609000e1b2734414e5a67748186868686868686868686868686868686868686868686868686868686868686868683776a5d5144372a1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2932434d555b5d60606060605e5c564e44392e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000613202c3945525d686d6f6f6f6f6f6f6f6d685d5245392c20130600000005121e2a36424d57626e7c87929fa7ada19791857d746f6c6568676869696e7279808893958f828f9ca8afa295887c6f6255493c2f221609000e1b2734414e5a6774818d939393939393939393939393939393939393939393939393939393939393939083776a5d5144372a1e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720313b434a4f515353535353514f4b443c32281d12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000714212d3a4754606d7a7c7c7c7c7c7c7c7a6d6054473a2d211407000000020e1a25303b47535f6a73808d95a0a8a9a1979188817c797674747476787b7f848d939890837e8a97a3afa295887c6f6255493c2f221609000e1b2734414e5a6774818d9a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9084776a5d5144372a1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1f2931393f4244464646464644433f39322a20160c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d898989898989897d7063564a3d3023170a0000000009141f2b37434e58606d79839096a0a8a9a19a938e8985828181818284878c91969992867c7d8a97a4afa295887c6f6255493c2f221609000e1b2734414e5a6774818d9aa7acacb2a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9084776a5d5144372a1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d171f272e33363739393939393837332e2820180e04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d899595959595897d7063564a3d3023170a00000000030f1a26313c45515c676e7b8491969fa4aca49f9b97928f8e8d8e8f9196999e9892877e717e8a97a4afa295887c6f6255493c2f221609000e1b2734414e5a6774818d9aa9b3b9ada1979191919191919191919191919191919191919191919191919083776a5d5144372a1e1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d151c2227292a2d2d2d2d2d2b2a27231d160e0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a2a2a296897d7063564a3d3023170a00000000000915202934404b555e696e7b848e939a9fa3aba9a19e9c9b9a9b9c9e9f9d9590867e70717e8b97a4afa295887c6f6255493c2f221609000e1a2734414d5a6774808d97a2adb8ab9e91858484848484848484848484848484848484848484848484848275685c4f4235291c0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b11161a1d1e20202020201e1d1b17120c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2aca4978a7d7164574a3e3124170b000a1723303d4a5663707d8996a3aca396897d7063564a3d3023170a0000000000030c18232f39434d575e696e7981878f92999b9d9e9f9f9f9e9d9b9895908a837c706c717e8b97a4afa295887c6f6255493c2f221609000815212e3b4854616e7b85929ea4aea99d9083787777777777777777777777777777777777777777777777756f65594d4134281b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a0e1011131313131311110e0b0601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c89969f9f9f978a7d7164574a3e3124170b000a1723303d4a5663707d89969f9f9f96897d7063564a3d3023170a00000000000007121d27313b454d575e676d747c82868b8e909192929291908e8b88837e786f6a64717e8b97a4afa295887c6f6255493c2f221609000714202d3a46525e69707d8a929da7ab9f958d80736b6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a68655d54493d3125190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8993939393938a7d7164574a3e3124170b000a1723303d4a5663707d899393939393897d7063564a3d3023170a000000000000010b151f29333b454d555d606a6f757a7e8183858586858583817f7b77716d665f64717e8b97a4afa295887c6f6255493c2f2216090005121e2a36424d57616c74808d95a0aaa79f93887d70685e545e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5c59544b42372c2115090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7d868686868686867e7164574a3e3124170b000a1723303d4a5663707d868686868686867d7063564a3d3023170a00000000000000030d172129333b434b51586062686e71747678797978787674726e6964605c5464717e8b97a4afa295887c6f6255493c2f22160900020e1a25303b454f59606d79839098a2aea49a92857a6e665b5051515151515151515151515151515151514f4d49423930261b100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f79797979797979716c6155493c3023170a000916232f3c4855616b7079797979797979706b6155483c2f2316090000000000000000050f172129313a40454e54565e6164686a6b6c6c6c6b6a6865615f5753505864717e8b97a4afa295887c6f6255493c2f221609000009141f29333e45515c676e7b86929fa5aca1978f82786c60594f4444444444444444444444444444444442413d3730271e140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c38434f5960636c6c6c6c6c6c6c64615a5045392d211408000714202c38444f5961636c6c6c6c6c6c6c6361594f44382c201407000000000000000000050f171f282f353d43474c5254585b5d5e5f5f5f5e5d5b5855534d464b5864717e8b97a4afa295887c6f6255493c2f2216090000030d17212834404b555f69717e8a939da8a99f948c7f736b60564c4135373737373737373737373737373534312c261e150c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d474f545660606060606060575550483e33281c11040004101c27333d474f55566060606060606056554f473d33271c100400000000000000000000050d161d242932373b4146474b4e505252535252504e4c4846423e4b5864717e8b97a4afa295887c6f6255493c2f221609000000050f18232e39434d57616c74818e95a0aaa69f92877d6f685d52463f342a2b2b2b2b2b2b2b2b2b2b2b292825211b140c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b353d434849535353535353534a49453e362c22170c0000000b16212c353d44484a535353535353534a48443d352c21160b000000000000000000000000040c131820272b3036393b3e4143454646454543413f3b3a363e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000007121d27303c45505a606d79839198a3aea39991847a6d615b51463c31281d1e1e1e1e1e1e1e1e1e1c1b1915100902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b32383b3c464646464646463e3c39332c241a100500000005101a232c33383c3d464646464646463d3c38332c231a10050000000000000000000000000001070d151b1e252a2d2e31353738393939383735322e2d313e4b5864717e8b97a4afa295887c6f6255493c2f22160900000000000b151e2a333e45515d676f7c86929fa5aba1968f82756d62584e433a2f24180f111111111111110f0e0c090400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101921272c2f303939393939393931302d28221a1208000000000008111a21272c2f3039393939393939302f2c27211a110800000000000000000000000000000000040a0f14191e202125282a2b2c2c2c2b2a28252225313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000030c18212935404b555f6a727f8b939ea8a89e938b7f726a5f554b41352921180d030404040404020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b1f22232d2d2d2d2d2d2d2423211c171008000000000000000810161c2023232d2d2d2d2d2d2d2323201c1610080000000000000000000000000000000000000002080e111414181b1d1f1f201f1f1d1b191825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000000000000060f18242f39434e58626d75818e96a1aba69f92867c6f675d51453f332a1f150b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020171714110c05000000000000000000050b1014161720202020202020171614100b0500000000000000000000000000000000000000000000020507080b0e101213131212100e0c1825313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000007121d28313c46515b606d7a849199a3aea3999184796d605a50463c31271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003070909131313131313130b0a0804000000000000000000000000000407090a131313131313130a09070400000000000000000000000000000000000000000000000000000000000204050606060504020b1825313e4b5864717e8b97a4afa295887c6f6255493c2f22160900000000000000010c161f2a343f45525d686f7c87929fa6aba0968e81756c62584e43392f24180f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f2216090000000000000000040d18222935414c56606a727f8c949fa9a89e938b7e716a5f554b40352921170c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040613131313131313130d0c0a070200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4afa295887c6f6255493c2f221609000000000000000000061019242f3a444e58606c77828f97a1aba59f92867c6e675d51453e33291e150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d111320202020202020201a1917130e07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4aca295887c6f6255493c2f2216090000000000000000000008131e28323d44505b656d7a859199a4aea2989083796d605a50453b30271c120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181d202d2d2d2d2d2d2d2d2626231f19120a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b979f9f9f95887c6f6255493c2f22160900000000000000000000010c162027333f49535e68707d87939fa6aaa0958d81746c61574d42392e23180e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d24292c393939393939393933322f2a241c130a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b9393939393887c6f6255493c2f2216090000000000000000000000040d17222d38414c56606b73808d949fa9a79d928a7e71695f544a40342820170b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f35394646464646464646403f3b352e261c1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e868686868686867c6f6255493c2f22160900000000000000000000000006111b262f3a444f59606d78829097a2ada49f92857b6e665c51443e32291d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a404553535353535353534d4b4740382e24190e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4956626c7179797979797979766a5f53473b2e211508000000000000000000000000000a141d29323d44505c666e7b85929ea4ada2979083786d60594f443b2f261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a434b515f606060606060605957524a40352a1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c625f584e43372b1f130600000000000000000000000000020b172028343f4a545e69707d8a929da7a99f958d80736b61564d42382d22170e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b555d6c6c6c6c6c6c6c6c66635c52473b2f23170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d29343e485056586060606060606055534e463c32261b0f030000000000000000000000000000050e17232e38424d57616c74808d95a0aaa79f93887d70695e544a3f332820160b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d677679797979797979736e63574b3f3226190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222d363e45494b535353535353534947433c342a20150a0000000000000000000000000000000006111c26303b45505a606d79839098a2aea49a92857b6e665b50443d32281d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986868686868686807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b242d34393d3e464646464646463c3b37322a22180e0400000000000000000000000000040404000a141e29333e45515c676e7b86929fa5aca1978f82786c60594f443a2f261b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693939393938c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292d3031393939393939392f2e2b2620181006000000000000000000000306080911111111110c17212834404b555f69717e8a939da8a99f948c7f736b60564c41382d22170d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86939f9f9f998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d22211f1b150e06000000000000000000030a0f1215151e1e1e1e1e1e1e18232e39434d57616c74818e95a0aaa69f93877d70685e53493f33271f160c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0aca6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11151718202020202020201615130f0a04000000000000000000060e151a1f21222b2b2b2b2b2b2b2b2b27303c45505a606d79839198a3aea49991847a6d655b50443d31281e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b13131313131313090806030000000000000000000006101820262b2e2f3737373737373737373737333e45515d676f7c86929fa5aba1968f82776c60584e433a2f24190d06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18222a31373a3c44444444444444444444444444404b555f6a727f8b939ea8a99e948c7f726a60554c41352922180c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a343c4347485151515151515151515151515151514e58626d75818f96a1aba69f92877c6f675d51453f34291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a26313c464e53555e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5b606d7a849199a3aea39991847a6d605a50453a2e2115090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e585f626a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a686f7c87929facaba0968e81756c62564a3d3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a6f777777777777777777777777777777777777777777777f8c99a5b2a89e938b7e7165584b3e3225180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7c8484848484848484848484848484848484848484848484919daab7afa59f9285786c5f5245392c1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c889191919191919191919191919191919191919191919196a0acb8b8ac9f9285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88959d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9da0a8b2acacac9f9285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8893939393939393939393939393939393939393939393939393939393939285796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8686868686868686868686868686868686868686868686868686868686868686796c5f5246392c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a76797979797979797979797979797979797979797979797979797979797979797974695d5144382b1f120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5860626c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6962584d4135291c100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323c464e5455606060606060606060606060606060606060606060606060606060606060605f5d5850463b3025190d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202b343c4347495353535353535353535353535353535353535353535353535353535353535352514d463e342a1f14080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222b32373b3c464646464646464646464646464646464646464646464646464646464646464644413b342c22180d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101920272b2e2f39393939393939393939393939393939393939393939393939393939393939393835302a221a1006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f151b1f22222d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f18100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f131516202020202020202020202020202020202020202020202020202020202020201f1f1c19140d060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060809131313131313131313131313131313131313131313131313131313131313131312100d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d070704010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c1114202d3a4753606d7a8693a0ada6998c807366594d4033261a1a1413110d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000910171d21202d3a4753606d7a8693a0ada6998c807366594d403326262621201d19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22282d30313a4753606d7a8693a0ada6998c807366594d40333333332d2c29241e160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101b242c34393d3e404753606d7a8693a0ada6998c807366594d40404040403a39352f2820160c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222c363e45494b4d4d53606d7a8693a0ada6998c807366594d4d4d4d4d4d4745413a32281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d28343e48505557595959606d7a8693a0ada6998c8073665959595959595954524c443a2f24190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a6164666666666d7a8693a0ada6998c80736666666666666666605d564c4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4955616c7173737373737a8693a0ada6998c807373737373737373736d685d5245392c201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8080808080808d99a6b3a99c90828080808080808080807a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828c8c8c8c8c8d929ca8b4ab9f94908c8c8c8c8c8c8c8c877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f99999999999ca4aeb9b0a69f9c9999999999999994877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f9c9f9f9fa0a2a7afb9b6aea8a69f9f9f9f9f9f9f94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828f9393939393969da7b2aea49c999393939393939393877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c2936434f5c6976828686868686868b96a2aea89c928c8686868686868686867b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835414e5a6670767979797979798693a0ada6998c8079797979797979797976695e53463a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1925323d49545e66696c6c6c6c6d7a8693a0ada6998c80736c6c6c6c6c6c6c6c6c5e574d42362a1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915212c38424c545a5c606060606d7a8693a0ada6998c807366606060606060605f534d453b31251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101b26303a42494e4f535353606d7a8693a0ada6998c807366595353535353534846423b33291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2830383d4143464753606d7a8693aab4a6998d8073665a4d46464646463b3a36312921170d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c161e262c3235363a4653606d798698a3aea79a8d81746753493f36393a3c3a38342f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c141b2125282c3845515c667986929faca89b8f8275655b5046424547484745403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1015191c2834404b546b7885929eabab9e9184786c6056534d51545553514b43392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005090c18232e43505d6a7683909da9ada196897d7068615f575d6062605c554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2734414d5a6774808d9aa9b2a89d91837a726e696c676d6f6d675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a1adaca09591847f7b7978797a7c796d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929ea6b0a7a096918b8886858687877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c67737f8c949fa6ada8a19e989992929299877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55606d78828f949ea1a8a9aaaba39f9f9f94877b6e6154483b2e2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3944505c666d7a828c91969a9c9e9f9f9f9f9e94877b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28343f4a545e686d787f848a8d9091929292929190877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424c565e666c72797d808384858686858483817a6d6054473a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303a444c545b60666d70737677787979787876746d685d5245392c20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e29323a424a50545c606467696b6c6c6c6c6b6967605d564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c1720292f383f444a5053575a5d5e5f5f5f5f5e5d5b54524c443a2f24190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171d262d33383f44464a4d50515253535251504e4745413a32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b141c22282e34383a3d404344454646454543413a39352f2820160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c23282c2d31343638393939393836342d2c29241e160d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b11171c1f2024272a2b2c2c2c2c2b2a2821201d19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c101213171a1d1e1f20201f1e1d1b1413110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070a0d10111213131212100e0707040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m_StreamData: + serializedVersion: 2 offset: 0 size: 0 path: diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset index 9dc9cd8..b6ee06b 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset @@ -48,8 +48,8 @@ Material: - _Stencil: 0 - _StencilComp: 8 - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 + - _StencilReadMask: 1 + - _StencilWriteMask: 0 - _TextureHeight: 1024 - _TextureWidth: 1024 - _UnderlayDilate: 0 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 0a85ce6..797c9ad 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -29,4 +29,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/GadGame/Scenes/CTA-male.unity guid: 8d29c734954a82da488afe07def90528 + - enabled: 1 + path: Assets/GadGame/Scenes/CTA-both.unity + guid: 5881f8613541949ffbbc6a2d193f3704 m_configObjects: {}